version 1.14.0 Wiki Update

master
meisnate12 2 years ago
parent 56656e07a6
commit 3653527a2f

@ -1,16 +1,16 @@
You can build different collections using the features of [AniDB.net](https://anidb.net/) (AniDB).
You can find anime using the features of [AniDB.net](https://anidb.net/) (AniDB).
No configuration is required for these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [AniDB ID](#anidb-id) | `anidb_id` | Gets the anime specified by the AniDB ID | :heavy_check_mark: | :heavy_check_mark: |
| [AniDB Relation](#anidb-relation) | `anidb_relation` | Gets all anime in the relation graph of the specified AniDB ID | :heavy_check_mark: | :heavy_check_mark: |
| [AniDB Popular](#anidb-popular) | `anidb_popular` | Gets every anime in AniDB's [Popular Anime](https://anidb.net/latest/anime/popular/?h=1) list | :heavy_check_mark: | :heavy_check_mark: |
| [AniDB Tags](#anidb-tags) | `anidb_tags` | Gets every anime in a AniDB Tag | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [AniDB ID](#anidb-id) | `anidb_id` | Finds the anime specified by the AniDB ID | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [AniDB Relation](#anidb-relation) | `anidb_relation` | Finds all anime in the relation graph of the specified AniDB ID | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [AniDB Popular](#anidb-popular) | `anidb_popular` | Finds every anime in AniDB's [Popular Anime](https://anidb.net/latest/anime/popular/?h=1) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [AniDB Tags](#anidb-tags) | `anidb_tags` | Finds every anime in a AniDB Tag | :heavy_check_mark: | :heavy_check_mark: | :x: |
## AniDB ID
Gets the anime specified by the AniDB ID.
Finds the anime specified by the AniDB ID.
The expected input is an AniDB ID or AniDB Anime URL. Multiple values are supported as either a list or a comma-separated string.
@ -26,7 +26,7 @@ collections:
```
## AniDB Relation
Gets all anime in the relation graph of the specified AniDB ID.
Finds all anime in the relation graph of the specified AniDB ID.
To see the relation graph of an anime use: `https://anidb.net/anime/<ANIDB_ID>/relation/graph` but replace `<ANIDB_ID>` with the AniDB ID you want to see the relations for.
@ -49,22 +49,22 @@ collections:
```
## AniDB Popular
Gets every anime in AniDB's [Popular Anime](https://anidb.net/latest/anime/popular/?h=1) list.
Finds every anime in AniDB's [Popular Anime](https://anidb.net/latest/anime/popular/?h=1) list.
The expected input is a single integer value of how much anime to query with a max of 30.
The `sync_mode: sync` option is also recommended since the Trakt Trending lists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
AniDB Popular:
anidb_popular: 30
collection_order: custom
sync_mode: sync
```
## AniDB Tag
Gets anime with the specified AniDB Tag the options are detailed below.
Finds anime with the specified AniDB Tag the options are detailed below.
| Attribute | Description | Required | Default |
| :--- | :--- | :---: | :---: |

@ -1,61 +1,64 @@
You can build different collections using the features of [AniList.co](https://anilist.co/) (AniList).
You can find anime using the features of [AniList.co](https://anilist.co/) (AniList).
No configuration is required for these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [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/popular) list | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Trending Anime](#anilist-trending-anime) | `anilist_trending` | Gets every anime in AniList's [Trending Anime](https://anilist.co/search/anime/trending) list | :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 ID](#anilist-id) | `anilist_id` | Gets the anime specified by the AniList ID | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Search](#anilist-search) | `anilist_search` | Gets the anime specified by the AniList search parameters provided | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [AniList Top Rated Anime](#anilist-top-rated-anime) | `anilist_top_rated` | Finds every anime in AniList's [Top Rated Anime](https://anilist.co/search/anime?sort=SCORE_DESC) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Popular Anime](#anilist-popular-anime) | `anilist_popular` | Finds every anime in AniList's [Popular Anime](https://anilist.co/search/anime/popular) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Trending Anime](#anilist-trending-anime) | `anilist_trending` | Finds every anime in AniList's [Trending Anime](https://anilist.co/search/anime/trending) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [AniList Relations](#anilist-relations) | `anilist_relations` | Finds 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: | :x: |
| [AniList Studio](#anilist-studio) | `anilist_studio` | Finds all anime specified by the AniList Studio ID | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [AniList ID](#anilist-id) | `anilist_id` | Finds the anime specified by the AniList ID | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [AniList Search](#anilist-search) | `anilist_search` | Finds the anime specified by the AniList search parameters provided | :heavy_check_mark: | :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.
Finds every anime in AniList's [Top Rated Anime](https://anilist.co/search/anime?sort=SCORE_DESC) list.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the list is continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Rated Anime:
anilist_top_rated: 30
collection_order: custom
sync_mode: sync
```
## AniList Popular Anime
Gets every anime in AniList's [Popular Anime](https://anilist.co/search/anime/popular) list.
Finds every anime in AniList's [Popular Anime](https://anilist.co/search/anime/popular) list.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the list is continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Popular Anime:
anilist_popular: 10
collection_order: custom
sync_mode: sync
```
## AniList Trending Anime
Gets every anime in AniList's [Trending Anime](https://anilist.co/search/anime/trending) list.
Finds every anime in AniList's [Trending Anime](https://anilist.co/search/anime/trending) list.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the list is continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trending Anime:
anilist_trending: 10
collection_order: custom
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.
Finds the anime specified by the AniList ID and every relation in its relation tree except Character and Other relations.
The expected input is an AniList ID. Multiple values are supported as either a list or a comma-separated string.
@ -66,7 +69,7 @@ collections:
```
## AniList Studio
Gets all anime specified by the AniList Studio ID.
Finds all anime specified by the AniList Studio ID.
The expected input is an AniList ID. Multiple values are supported as either a list or a comma-separated string.
@ -77,7 +80,7 @@ collections:
```
## AniList ID
Gets the anime specified by the AniList ID.
Finds 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.
@ -88,10 +91,12 @@ collections:
```
## AniList Search
Gets the anime specified by the AniList Search the options are detailed below.
Finds the anime specified by the AniList Search 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).
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
## Special Attributes
Special attributes do not support any modifiers.
@ -180,6 +185,7 @@ collections:
season:
year:
sort_by: popular
collection_order: custom
sync_mode: sync
```
```yaml
@ -188,6 +194,7 @@ collections:
anilist_search:
season: fall
year: 2020
collection_order: custom
sync_mode: sync
```
```yaml
@ -196,6 +203,7 @@ collections:
anilist_search:
tag: Pirates
sort_by: popular
collection_order: custom
sync_mode: sync
```
```yaml
@ -205,5 +213,6 @@ collections:
genre: Sports
limit: 20
sort_by: popular
collection_order: custom
sync_mode: sync
```

@ -0,0 +1,55 @@
## Radarr Details
All the following attributes can override the global/library [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) attributes which are the default unless otherwise specified.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| [Radarr Add](#arr-add) | `radarr_add` | Override Radarr `add` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Radarr Add Existing](#arr-add-existing) | `radarr_add_existing` | Override Radarr `add_existing` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Radarr Root Folder](#radarr-add-details) | `radarr_folder` | Override Radarr `root_folder_path` attribute | Folder Path | :heavy_check_mark: |
| [Radarr Monitor](#radarr-add-details) | `radarr_monitor` | Override Radarr `monitor` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Radarr Availabilit](#radarr-add-details)y | `radarr_availability` | Override Radarr `availability` attribute | `announced`, `cinemas`, `released`, `db` | :heavy_check_mark: |
| [Radarr Quality Profile](#radarr-add-details) | `radarr_quality` | Override Radarr `quality_profile` attribute | Radarr Quality Profile | :heavy_check_mark: |
| [Radarr Tag](#radarr-add-details) | `radarr_tag` | Override Radarr `tag` attribute | List or comma-separated string of tags | :heavy_check_mark: |
| [Radarr Search](#radarr-add-details) | `radarr_search` | Override Radarr `search` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Item Radarr Tag](#arr-edit-details) | `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 | :heavy_check_mark: |
| [Item Radarr Tag Remove](#arr-edit-details) | `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 | :heavy_check_mark: |
| [Item Radarr Tag Sync](#arr-edit-details) | `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 | :heavy_check_mark: |
## Sonarr Details
All the following attributes can override the global/library [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) attributes which are the default unless otherwise specified.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| [Sonarr Add](#arr-add) | `sonarr_add` | Override Sonarr `add` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Sonarr Add Existing](#arr-add-existing) | `sonarr_add_existing` | Override Sonarr `add_existing` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Sonarr Root Folder](#radarr-add-details) | `sonarr_folder` | Override Sonarr `root_folder_path` attribute | Folder Path | :heavy_check_mark: |
| [Sonarr Monitor](#radarr-add-details) | `sonarr_monitor` | Override Sonarr `monitor` attribute | `all`, `future`, `missing`, `existing`, `pilot`, `first`, `latest`, `none` | :heavy_check_mark: |
| [Sonarr Quality Profile](#radarr-add-details) | `sonarr_quality` | Override Sonarr `quality_profile` attribute | Sonarr Quality Profile | :heavy_check_mark: |
| [Sonarr Language Profile](#radarr-add-details) | `sonarr_language` | Override Sonarr `language_profile` attribute | Sonarr Language Profile | :heavy_check_mark: |
| [Sonarr Series Type](#radarr-add-details) | `sonarr_series` | Override Sonarr `series_type` attribute | `standard`, `daily`, `anime` | :heavy_check_mark: |
| [Sonarr Season Folder](#radarr-add-details) | `sonarr_season` | Override Sonarr `season_folder` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Sonarr Tag](#radarr-add-details) | `sonarr_tag` | Override Sonarr `tag` attribute | List or comma-separated string of tags | :heavy_check_mark: |
| [Sonarr Search](#radarr-add-details) | `sonarr_search` | Override Sonarr `search` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Sonarr Cutoff Search](#radarr-add-details) | `sonarr_cutoff_search` | Override Sonarr `cutoff_search` attribute | **boolean:** `true` or `false` | :heavy_check_mark: |
| [Item Sonarr Tag](#arr-edit-details) | `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 | :heavy_check_mark: |
| [Item Sonarr Tag Remove](#arr-edit-details) | `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 | :heavy_check_mark: |
| [Item Sonarr Tag Sync](#arr-edit-details) | `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 | :heavy_check_mark: |
### Arr Add
When `radarr_add`/`sonarr_add` are true the items missing from the collection/playlist will be added to Radarr/Sonarr.
### Arr Add Existing
When `radarr_add`/`sonarr_add` are true the items that exist in the collection/playlist will be added to Radarr/Sonarr.
### Radarr Add Details
When adding a movie in Radarr you get the screen below to set these options use `radarr_folder`, `radarr_monitor`, `radarr_availability`, `radarr_quality`, `radarr_tag`, and `radarr_search`.
![Radarr Details](https://raw.githubusercontent.com/wiki/meisnate12/Plex-Meta-Manager/radarr2.png)
### Sonarr Add Details
When adding a movie in Sonarr you get the screen below to set these options use `sonarr_folder`, `sonarr_monitor`, `sonarr_quality`, `sonarr_language`, `sonarr_series`, `sonarr_season`, `sonarr_tag`, `sonarr_search`, and `sonarr_cutoff_search`.
![Sonarr Details](https://raw.githubusercontent.com/wiki/meisnate12/Plex-Meta-Manager/sonarr2.png)
### Arr Edit Details
When editing the details of items that exist in the collection/playlist and in Radarr/Sonarr use `item_radarr_tag` and `item_sonarr_tag`

@ -1,8 +0,0 @@
The script can automatically build collections, edit collection metadata, and change collection images using the `collections` attribute.
Each collection is defined by the mapping name which becomes the name of the Plex collection.
There are three types of attributes in collections
1. **[Collection Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Builders):** attribute that adds items to the collection
2. **[Collection Details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details):** attribute that changes a collections details
3. **[Collection Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Filters):** attributes that filters items added to all collection builders

@ -1,19 +0,0 @@
Collection builders all add movies/shows to collections.
Multiple collection builders can be used in the same collection.
There are multiple different sources you can build collections from listed below
* [Plex Builders](Plex-Builders)
* [Smart Builders](Smart-Builders)
* [TMDb Builders](TMDb-Builders)
* [TVDb Builders](TVDb-Builders)
* [IMDb Builders](IMDb-Builders)
* [Trakt Builders](Trakt-Builders)
* [Tautulli Builders](Tautulli-Builders)
* [Letterboxd Builders](Letterboxd-Builders)
* [ICheckMovies Builders](ICheckMovies-Builders)
* [FlixPatrol Builders](FlixPatrol-Builders)
* [StevenLu Builders](StevenLu-Builders)
* [AniDB Builders](AniDB-Builders)
* [AniList Builders](AniList-Builders)
* [MyAnimeList Builders](MyAnimeList-Builders)

@ -1,210 +0,0 @@
Here is an example with multiple details being set:
```yaml
collections:
IMDb Top 250:
imdb_list: https://www.imdb.com/search/title/?groups=top_250&count=25
sort_title: "+100"
sync_mode: sync
radarr_add: true
show_filtered: true
filters:
original_language: en
Reddit Top 250:
trakt_list: https://trakt.tv/users/jay-greene/lists/reddit-top-250-2019-edition
sort_title: "+101"
sync_mode: sync
Star Wars:
tmdb_collection: 10
tmdb_summary: 10
tmdb_poster: 10
tmdb_background: 10
Pixar:
studio: Pixar
content_rating: PG
url_poster: https://theposterdb.com/api/assets/29378/view?
url_background: https://wallpaperaccess.com/full/331622.jpg
summary: A collection of Pixar movies
collection_order: alpha
Robin Williams:
actor: Robin Williams
tmdb_biography: 2157
tmdb_profile: 2157
collection_mode: show_items
collection_order: alpha
Samuel L. Jackson:
actor: tmdb
tmdb_person: 2231
collection_mode: show_items
collection_order: alpha
Marvel Cinematic Universe:
tmdb_list: 7069903
tmdb_description: 7069903
tmdb_list_poster: 7069903
28 Days/Weeks Later:
tmdb_collection_details: 1565
name_mapping: 28 Days-Weeks Later
```
The available collection details for each collection are split into different sections
* [Settings Details](#setting-details)
* [Radarr Details](#radarr-details)
* [Sonarr Details](#sonarr-details)
* [Metadata Details](#metadata-details)
* [Item Metadata Details](#item-metadata-details)
* [Summary Details](#summary-details)
* [Poster Details](#poster-details)
* [Background Details](#background-details)
## Setting Details
All the following attributes serve various functions as how the collection functions inside of Plex Meta Manager.
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| Collection Name | `collection_name` | Used to specify the name off the collection in Plex as different then the mapping name. | Any String |
| Schedule | `schedule` | Used to schedule this collection | [`schedule` mapping details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) |
| 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 |
| Collection Minimum | `collection_minimum` | Minimum items that must be found to add to a collection.<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | number greater then 0 |
| Delete Below Minimum | `delete_below_minimum` | Deletes the collection if below the minimum.<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:** `true` or `false` |
| Delete Not Scheduled | `delete_not_scheduled` | Deletes the collection if its skipped because its not scheduled.<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:** `true` or `false` |
| 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` |
| Server Pre-Roll | `server_preroll` | Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras | Any String |
| 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` |
| Only Filter Missing | `only_filter_missing` | Collection Level `only_filter_missing` 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` |
| Ignore IDs | `ignore_ids` | Collection level `ignore_ids` which is combined with the library and global `ignore_ids`<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | List or comma-separated String of TMDb/TVDb IDs |
| Ignore IMDb IDs | `ignore_imdb_ids` | Collection level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | List or comma-separated String of IMDb IDs |
| Name Mapping | `name_mapping` | Used to specify the folder name in the [Image Assets Directory](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) | Folder Name In Assets Directory |
| Test Mode | `test` | When running in Test Mode (`--run-tests` [option](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Local-Installation#run-tests)) only collections with `test: true` will be run<br>**Default:** `false` | **boolean:** `true` or `false` |
| Collection Changes Webhooks | `collection_changes_webhooks` | Used to specify a collection changes webhook for just this collection | List of webhooks |
* **Name Mapping:** If your collection name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `|`, `?`, `*` cannot be in the file path), but you want them in your collection name you can use the `name_mapping` attribute to specific this collection's name in the file system.
* **Server Pre-Roll:** You can run this with a [schedule](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) to change the pre-rolls automatically.
## Radarr Details
All the following attributes can override the global [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) attributes.
| 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 Root Folder | `radarr_folder` | Collection level `root_folder_path` attribute override for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | Folder Path |
| Radarr Monitor | `radarr_monitor` | Collection level `monitor` attribute override for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | **boolean:** `true` or `false` |
| Radarr Availability | `radarr_availability` | Collection level `availability` attribute override for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | `announced`, `cinemas`, `released`, `db` |
| Radarr Quality Profile | `radarr_quality` | Collection level `quality_profile` attribute override for Radarr<br>**Default:** [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes) library value | Radarr Quality Profile |
| 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 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.
| 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` |
| Sonarr Root Folder | `sonarr_folder` | Collection level `root_folder_path` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | Folder Path |
| Sonarr Monitor | `sonarr_monitor` | Collection level `monitor` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | `all`, `future`, `missing`, `existing`, `pilot`, `first`, `latest`, `none` |
| Sonarr Quality Profile | `sonarr_quality` | Collection level `quality_profile` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | Sonarr Quality Profile |
| Sonarr Language Profile | `sonarr_language` | Collection level `language_profile` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | Sonarr Language Profile |
| Sonarr Series Type | `sonarr_series` | Collection level `series_type` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | `standard`, `daily`, `anime` |
| Sonarr Season Folder | `sonarr_season` | Collection level `season_folder` attribute override for Sonarr<br>**Default:** [Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) library value | **boolean:** `true` or `false` |
| 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 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.
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| TMDb Person | `tmdb_person` | Used to change the collection's summary and poster to a TMDb Person's biography and profile as well as allow the people specified to be used in [Plex Searches](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-search) | TMDb Person ID (List or Comma-separated string) |
| Sort Title | `sort_title` | Used to change the collection's sort title | Text to change Sort Title |
| Content Rating | `content_rating` | Used to change the collection's content rating | Text to change Content Rating |
| Label | `label` | Used to append new labels to the collection | Comma-separated string of labels to append |
| 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 (Leave blank to remove all labels) | 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<br>`custom`: Order Collection Via the Builder Order | :heavy_check_mark: | :heavy_check_mark: |
| Collection Level | `collection_level` | Used to make episode or season collections from `plex_search` or `trakt_list` Builders | `season`: Collection contains seasons<br>`episode`: Collection contains episodes }
| 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 `~`.
* **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.
| Name | Attribute | Description | Allowed Values | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :--- | :---: | :---: |
| Label | `item_label` | Used to append new labels to every movie/show in the collection | Comma-separated string of labels to append | :heavy_check_mark: | :heavy_check_mark: |
| Label Remove | `item_label.remove` | Used to remove existing labels from every movie/show in the collection | Comma-separated string of labels to remove | :heavy_check_mark: | :heavy_check_mark: |
| Label Sync | `item_label.sync` | Matches the labels of every movie/show in the collection to the labels provided (Leave blank to remove all labels) | Comma-separated string of labels to sync | :heavy_check_mark: | :heavy_check_mark: |
| Lock Posters | `item_lock_poster` | Locks the poster of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| Lock Backgrounds | `item_lock_background` | Locks the background of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| Lock Titles | `item_lock_title` | Locks the title of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| Image Overlay | `item_overlay` | Adds and overlay image to the poster of every movie/show in the collection | [`item_overlay` details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Overlay-Attribute) | :heavy_check_mark: | :heavy_check_mark: |
| Check For Assets | `item_assets` | Checks your assets folders for assets of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| Refresh Item | `item_refresh` | Refreshes the metadata of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: |
| TMDb Season Titles | `item_tmdb_season_titles` | Changes the season titles of every show in the collection to match TMDb | `true` or `false`<br>**Default:** false | :x: | :heavy_check_mark: |
| Episode Sorting | `item_episode_sorting` | Changes the episode sorting of every show in the collection | `default`: Library default<br>`oldest`: Oldest first<br>`newest`: Newest first | :x: | :heavy_check_mark: |
| Keep Episodes | `item_keep_episodes` | Changes the keep episodes of every show in the collection | `all`: All episodes<br>`5_latest`: 5 latest episodes<br>`3_latest`: 3 latest episodes<br>`latest`: Latest episodes<br>`past_3`: Episodes added in the past 3 days<br>`past_7`: Episodes added in the past 7 days<br>`past_30`: Episodes added in the past 30 days | :x: | :heavy_check_mark: |
| Delete Episodes | `item_delete_episodes` | Changes the delete episodes of every show in the collection | `never`: Never<br>`day`: After a day<br>`week`: After a week<br>`refresh`: On next refresh | :x: | :heavy_check_mark: |
| Season Display | `item_season_display` | Changes the season display of every show in the collection | `default`: Library default<br>`show`: Show<br>`hide`: Hide | :x: | :heavy_check_mark: |
| Episode Ordering | `item_episode_ordering` | Changes the episode ordering of every show in the collection | `default`: Library default<br>`tmdb_aired`*: The Movie Database (Aired)<br>`tvdb_aired`: TheTVDB (Aired)<br>`tvdb_dvd`: TheTVDB (DVD)<br>`tvdb_absolute`: TheTVDB (Absolute) | :x: | :heavy_check_mark: |
| Metadata Language* | `item_metadata_language` | Changes the metadata language of every movie/show in the collection | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | :heavy_check_mark: | :heavy_check_mark: |
| Use Original Title* | `item_use_original_title` | Changes the use original title of every movie/show in the collection | `default`: Library default<br>`no`: No<br>`yes`: Yes | :heavy_check_mark: | :heavy_check_mark: |
\* Must be using the **New Plex Movie Agent** or the **New Plex TV Agent**
## Summary Details
All the following attributes update the summary of the collection from various sources.
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| Summary | `summary` | Used to change the collection's summary | Text to change Summary |
| TMDb Summary | `tmdb_summary` | Used to change the collection's summary to the TMDb Movie/Collection summary for a movie library or the TMDb Show summary for a show library | TMDb Movie/Show/Collection ID |
| TMDb Description | `tmdb_description` | Used to change the collection's summary to the TMDb List Description | TMDb List ID |
| TMDb Biography | `tmdb_biography` | Used to change the collection's summary to the TMDb Person's biography | TMDb Person ID |
| TVDb Summary | `tvdb_summary` | Used to change the collection's summary to the TVDb Movie summary for a movie library or the TVDb Show summary for a show library | TVDb Movie/Show ID or URL |
| TVDb Description | `tvdb_description` | Used to change the collection's summary to the TVDb List Description | TVDb List URL |
| Trakt Description | `trakt_description` | Used to change the collection's summary to the Trakt List Description | Trakt List URL |
| Letterboxd Description | `letterboxd_description` | Used to change the collection's summary to the Letterboxd List Description | Letterboxd List URL |
## Poster Details
All the following attributes update the poster of the collection from various sources.
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| URL Poster<sup>2</sup> | `url_poster` | Used to change the collection's poster to the URL | URL of image publicly available on the internet |
| TMDb Poster<sup>2</sup> | `tmdb_poster` | Used to change the collection's poster to the TMDb Movie/Collection poster for a movie library or the TMDb Show poster for a show library | TMDb Movie/Show/Collection ID |
| TMDb List Poster<sup>2</sup> | `tmdb_list_poster` | Used to change the collection's poster to the TMDb List poster | TMDb List ID |
| TMDb Profile<sup>2</sup> | `tmdb_profile` | Used to change the collection's poster to the TMDb Person's profile | TMDb Person ID |
| TVDb Poster<sup>2</sup> | `tvdb_poster` | Used to change the collection's poster to the TVDb Movie poster for a movie library or the TVDb Show poster for a show library | TVDb Movie/Show ID or URL |
| File Poster<sup>2</sup> | `file_poster` | Used to change the collection's poster to the image in the file system | Path to image in the file system |
* If no poster is specified the script will look in the library's [Image Asset Directories](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) for a folder named either the collection name or the `name_mapping` if specified and look for a `poster.ext` file in that folder (replacing .ext with the image extension).
## Background Details
All the following attributes update the background of the collection from various sources.
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| URL Background<sup>3</sup> | `url_background` | Use to change the collection's background to the URL | URL of image publicly available on the internet |
| TMDb Background<sup>3</sup> | `tmdb_background` | Used to change the collection's background to the TMDb Movie/Collection background for a movie library or the TMDb Show background for a show library | TMDb Movie/Show/Collection ID |
| TVDb Background<sup>3</sup> | `tvdb_background` | Used to change the collection's background to the TVDb Movie background for a movie library or the TVDb Show background for a show library | TVDb Movie/Show ID or URL |
| File Background<sup>3</sup> | `file_background` | Used to change the collection's background to the image in the file system | Path to image in the file system |
* If no background is specified the script will look in the library's [Image Asset Directories](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) for a folder named either the collection name or the `name_mapping` if specified and look for a `background.ext` file in that folder (replacing .ext with the image extension).

@ -9,6 +9,7 @@ The YAML mappings that can be set in the configuration file's root:
| Name | YAML Attribute | Required |
| :--- | :--- | :---: |
| [Libraries](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Libraries-Attributes) | `libraries` | :heavy_check_mark: |
| [Playlist Files](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Playlist-Files-Attributes) | `playlist_files` | :x: |
| [Settings](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | `settings` | :x: |
| [Webhooks](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Webhooks-Attributes) | `webhooks` | :x: |
| [Plex](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Attributes) | `plex` | :x: |

@ -1,12 +1,12 @@
Collection filters allow for you to filter every movie/show added to the collection from every collection builder using the `filters` attribute.
Filters allow for you to filter every item added to the collection/playlist from every builder using the `filters` attribute.
You can have multiple collection filters but a movie/show must match at least one value from **each** collection filter to be added to a collection. The values for each must match what Plex has including special characters in order to match.
You can have multiple filters but an item must match at least one value from **each** filter to be added to a collection/playlist. The values for each must match what Plex has including special characters in order to match.
All collection filter options are listed below. To display collections filtered out add `show_filtered: true` to the collection.
All filter options are listed below. To display items filtered out add `show_filtered: true` to the collection.
You can use `plex_all: true` to start your filter from your entire library.
You can use the `plex_all: true` builder to filter from your entire library.
**Filters can be very slow. Try to build or narrow your collection using [Plex Search](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-search) if possible.**
**Filters can be very slow. Try to build or narrow your items using [Plex Search](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-search) if possible.**
## String Filters
String filters can be used with either no modifier or with `.not`, `.is`, `.isnot`, `.begins`, `.ends`, or `.regex`.
@ -67,6 +67,16 @@ The `original_language` filter will also filter out movies from being added to R
| `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: |
## Boolean Filters
Boolean Filters have no modifiers.
### Attribute
| Boolean Filter | Description | Movie<br>Libraries | Show<br>Libraries |
| :--- | :--- | :---: | :---: |
| `has_collection` | Matches every item that has or does not have a collection | :heavy_check_mark: | :heavy_check_mark: |
| `has_overlay` | Matches every item that has or does not have an overlay | :heavy_check_mark: | :heavy_check_mark: |
## Date Filters
Date filters can be used with either no modifier or with `.not`, `.before`, `.after`, or `.regex`.

@ -1,18 +1,20 @@
You can build different collections using the features of [FlixPatrol.com](https://flixpatrol.com/) (FlixPatrol).
You can find items using the features of [FlixPatrol.com](https://flixpatrol.com/) (FlixPatrol).
No configuration is required for this builder.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [FlixPatrol Top](#flixpatrol-top-platform) | `flixpatrol_top` | Gets every movie/show from [FlixPatrol's Top Platform Lists](https://flixpatrol.com/top10/) based on the attributes provided. | :heavy_check_mark: | :heavy_check_mark: |
| [FlixPatrol Popular](#flixpatrol-popular) | `flixpatrol_popular` | Gets every movie/show from FlixPatrol's Popular [Movies](https://flixpatrol.com/popular/movies/)/[Shows](https://flixpatrol.com/popular/tv-shows/) Lists based on the attributes provided. | :heavy_check_mark: | :heavy_check_mark: |
| [FlixPatrol Demographics](#flixpatrol-demographics) | `flixpatrol_demographics` | Gets every movie/show from [FlixPatrol's Demographics Lists](https://flixpatrol.com/demographics/) based on the attributes provided. | :heavy_check_mark: | :heavy_check_mark: |
| [FlixPatrol URL](#flixpatrol-url) | `flixpatrol_url` | Gets every movie/show found at a FlixPatrol URL. | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [FlixPatrol Top](#flixpatrol-top-platform) | `flixpatrol_top` | Finds every item from [FlixPatrol's Top Platform Lists](https://flixpatrol.com/top10/) based on the attributes provided. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [FlixPatrol Popular](#flixpatrol-popular) | `flixpatrol_popular` | Finds every movie/show from FlixPatrol's Popular [Movies](https://flixpatrol.com/popular/movies/)/[Shows](https://flixpatrol.com/popular/tv-shows/) Lists based on the attributes provided. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [FlixPatrol Demographics](#flixpatrol-demographics) | `flixpatrol_demographics` | Finds every item from [FlixPatrol's Demographics Lists](https://flixpatrol.com/demographics/) based on the attributes provided. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [FlixPatrol URL](#flixpatrol-url) | `flixpatrol_url` | Finds every item found at a FlixPatrol URL. | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## FlixPatrol Top Platform
Gets every movie/show from [FlixPatrol's Top Platform Lists](https://flixpatrol.com/top10/) based on the attributes provided.
Finds every item from [FlixPatrol's Top Platform Lists](https://flixpatrol.com/top10/) based on the attributes provided.
### Top Platform Attribute
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
### Top Platform Attributes
| Attribute | Description | Options | Required | Default |
| :--- | :--- | :---: | :---: | :---: |
@ -29,12 +31,16 @@ collections:
location: united_states
time_window: this_month
limit: 20
collection_order: custom
sync_mode: sync
```
## FlixPatrol Popular
Gets every movie/show from FlixPatrol's Popular [Movies](https://flixpatrol.com/popular/movies/)/[Shows](https://flixpatrol.com/popular/tv-shows/) Lists based on the attributes provided.
Dinds every movie/show from FlixPatrol's Popular [Movies](https://flixpatrol.com/popular/movies/)/[Shows](https://flixpatrol.com/popular/tv-shows/) Lists based on the attributes provided.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
### Popular Attribute
### Popular Attributes
| Attribute | Description | Options | Required | Default |
| :--- | :--- | :---: | :---: | :---: |
@ -49,10 +55,14 @@ collections:
source: instagram
time_window: all
limit: 20
collection_order: custom
sync_mode: sync
```
## FlixPatrol Demographics
Gets every movie/show from [FlixPatrol's Demographics Lists](https://flixpatrol.com/demographics/) based on the attributes provided.
Finds every item from [FlixPatrol's Demographics Lists](https://flixpatrol.com/demographics/) based on the attributes provided.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
### Demographics Attribute
@ -71,17 +81,27 @@ collections:
gender: men
location: united_states
limit: 20
collection_order: custom
sync_mode: sync
```
## FlixPatrol URL
Gets every movie/show found at a FlixPatrol URL.
Finds every item found at a FlixPatrol URL.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
US Netflix Monthly:
flixpatrol_url: https://flixpatrol.com/top10/netflix/united-states/2021-11/full/
collection_order: custom
sync_mode: sync
Instagram Monthly Popular:
flicpatrol_url: https://flixpatrol.com/popular/movies/instagram/all-time/
collection_order: custom
sync_mode: sync
Gen X Male US Demographic:
flicpatrol_url: https://flixpatrol.com/demographics/generation-x/men/united-states/
collection_order: custom
sync_mode: sync
```

@ -12,8 +12,8 @@ This wiki should tell you everything you need to know about the script to get it
## Getting Started
1. Install Plex Meta Manager either by installing Python3 and following the [Local Installation Guide](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Local-Installation)
or by installing Docker and following the [Docker Installation Guide](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Docker-Installation) or the [unRAID Installation Guide](https://github.com/meisnate12/Plex-Meta-Manager/wiki/unRAID-Installation).
1. Install Plex Meta Manager either by installing Python3 and following the [Local Installation Guide](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Installation)
or by installing Docker and following the [Docker Installation Guide](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Docker-Installation) or the [unRAID Installation Guide](https://github.com/meisnate12/Plex-Meta-Manager/wiki/unRAID-Walkthrough).
2. Once installed, you have to create a [Configuration File](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Configuration-File) filled with all your values to connect to the various services.
3. After that you can start updating Metadata and building automatic Collections by creating a [Metadata File](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Metadata-File) for each Library you want to interact with.
4. Explore the [Wiki](https://github.com/meisnate12/Plex-Meta-Manager/wiki) to see all the different Collection Builders that can be used to create collections.
@ -35,14 +35,14 @@ This wiki should tell you everything you need to know about the script to get it
## Table of Contents
- [Home](Home)
- [Local Installation](Local-Installation)
- [Local Walkthrough](Walkthrough-Local)
- [Docker Installation](Docker-Installation)
- [Docker Walkthrough](Walkthrough-Docker)
- [unRAID Installation](unRAID-Installation)
- [Installation](Installation)
- [Local Walkthrough](Local-Walkthrough)
- [Docker Walkthrough](Docker-Walkthrough)
- [unRAID Walkthrough](unRAID-Walkthrough)
- [Configuration File](Configuration-File)
- [Libraries Attributes](Libraries-Attributes)
- [Operations Attributes](Operations-Attributes)
- [Playlist Files Attributes](Playlist-Files-Attributes)
- [Settings Attributes](Settings-Attributes)
- [Image Asset Directory](Image-Asset-Directory)
- [Webhooks Attributes](Webhooks-Attributes)
@ -56,29 +56,31 @@ This wiki should tell you everything you need to know about the script to get it
- [Sonarr Attributes](Sonarr-Attributes)
- [Trakt Attributes](Trakt-Attributes)
- [MyAnimeList Attributes](MyAnimeList-Attributes)
- [Metadata File](Metadata-File)
- [Metadata and Playlist File](Metadata-and-Playlist-File)
- [Metadata Attributes](Metadata-Attributes)
- [Seasons Attributes](Seasons-Attributes)
- [Episodes Attributes](Episodes-Attributes)
- [Template Attributes](Template-Attributes)
- [Collection Attributes](Collection-Attributes)
- [Collection Builders](Collection-Builders)
- [Plex Builders](Plex-Builders)
- [Smart Builders](Smart-Builders)
- [TMDb Builders](TMDb-Builders)
- [TVDb Builders](TVDb-Builders)
- [IMDb Builders](IMDb-Builders)
- [Trakt Builders](Trakt-Builders)
- [Tautulli Builders](Tautulli-Builders)
- [Letterboxd Builders](Letterboxd-Builders)
- [ICheckMovies Builders](ICheckMovies-Builders)
- [FlixPatrol Builders](FlixPatrol-Builders)
- [StevenLu Builders](StevenLu-Builders)
- [AniDB Builders](AniDB-Builders)
- [AniList Builders](AniList-Builders)
- [MyAnimeList Builders](MyAnimeList-Builders)
- [Collection Details](Collection-Details)
- [Schedule Detail](Schedule-Detail)
- [Image Overlay Detail](Image-Overlay-Detail)
- [Collection Filters](Collection-Filters)
- Builders
- [Plex Builders](Plex-Builders)
- [Smart Builders](Smart-Builders)
- [TMDb Builders](TMDb-Builders)
- [TVDb Builders](TVDb-Builders)
- [IMDb Builders](IMDb-Builders)
- [Trakt Builders](Trakt-Builders)
- [Tautulli Builders](Tautulli-Builders)
- [Letterboxd Builders](Letterboxd-Builders)
- [ICheckMovies Builders](ICheckMovies-Builders)
- [FlixPatrol Builders](FlixPatrol-Builders)
- [StevenLu Builders](StevenLu-Builders)
- [AniDB Builders](AniDB-Builders)
- [AniList Builders](AniList-Builders)
- [MyAnimeList Builders](MyAnimeList-Builders)
- Details
- [Setting Details](Setting-Details)
- [Schedule Detail](Schedule-Detail)
- [Image Overlay Detail](Image-Overlay-Detail)
- [Metadata Details](Metadata-Details)
- [Arr Details](Arr-Details)
- [Filters](Filters)
- [Acknowledgements](Acknowledgements)

@ -1,21 +1,25 @@
You can build different collections using the lists on [icheckmovies.com](https://www.icheckmovies.com/) (ICheckMovies).
You can find items using the lists on [icheckmovies.com](https://www.icheckmovies.com/) (ICheckMovies).
No configuration is required for these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [ICheckMovies List](#icheckmovies-list) | `icheckmovies_list` | Gets every movie in the ICheckMovies List | :heavy_check_mark: | :x: |
| [ICheckMovies List Details](#icheckmovies-list) | `icheckmovies_list_details` | Gets every movie in the ICheckMovies List and updates the collection with the description of the ICheckMovies list | :heavy_check_mark: | :x: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [ICheckMovies List](#icheckmovies-list) | `icheckmovies_list` | Finds every movie in the ICheckMovies List | :heavy_check_mark: | :x: | :heavy_check_mark: |
| [ICheckMovies List Details](#icheckmovies-list) | `icheckmovies_list_details` | Finds every movie in the ICheckMovies List and updates the collection with the description of the ICheckMovies list | :heavy_check_mark: | :x: | :heavy_check_mark: |
## ICheckMovies List
Gets every movie in the ICheckMovies List.
Finds every movie in the ICheckMovies List.
The expected input is a ICheckMovies List URL. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Vultures 101 Best Movie Endings:
icheckmovies_list: https://www.icheckmovies.com/lists/academy+award+-+best+picture
collection_order: custom
sync_mode: sync
```
* You can update the collection details with the ICheckMovies List's description by using `icheckmovies_list_details`.
@ -25,4 +29,6 @@ collections:
collections:
Vultures 101 Best Movie Endings:
icheckmovies_list_details: https://www.icheckmovies.com/lists/academy+award+-+best+picture
collection_order: custom
sync_mode: sync
```

@ -1,12 +1,13 @@
You can build different collections using the features of [IMDb.com](https://www.imdb.com/) (IMDb).
You can find items using the features of [IMDb.com](https://www.imdb.com/) (IMDb).
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [IMDb ID](#imdb-id) | `imdb_id` | Gets the movie/show specified | :heavy_check_mark: | :heavy_check_mark: |
| [IMDb List](#imdb-list) | `imdb_list` | Gets every movie/show in an IMDb List, [IMDb Keyword Search](https://www.imdb.com/search/keyword/), or [IMDb Search](https://www.imdb.com/search/title/) | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [IMDb ID](#imdb-id) | `imdb_id` | Gets the movie/show specified. | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [IMDb Chart](#imdb-chart) | `imdb_chart` | Gets every movie/show in an IMDb Chart like [IMDb Top 250 Movies](https://www.imdb.com/chart/top). | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [IMDb List](#imdb-list) | `imdb_list` | Gets every movie/show in an IMDb List, [IMDb Keyword Search](https://www.imdb.com/search/keyword/), or [IMDb Search](https://www.imdb.com/search/title/). | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## IMDb ID
Gets the movie/show specified
Gets the movie/show specified.
The expected input is an IMDb ID. Multiple values are supported as either a list or a comma-separated string.
@ -16,22 +17,55 @@ collections:
imdb_id: tt0458290, tt2930604
```
## IMDb Chart
Finds every item in an IMDb Chart.
The expected input are the options below. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
| Name | Attribute | Works with Movies | Works with Shows |
| :--- | :--- | :---: | :---: |
| [Box Office](https://www.imdb.com/chart/boxoffice) | `box_office` | :heavy_check_mark: | :x: |
| [Most Popular Movies](https://www.imdb.com/chart/moviemeter) | `popular_movies` | :heavy_check_mark: | :x: |
| [Top 250 Movies](https://www.imdb.com/chart/top) | `top_movies` | :heavy_check_mark: | :x: |
| [Top Rated English Movies](https://www.imdb.com/chart/top-english-movies) | `top_english` | :heavy_check_mark: | :x: |
| [Most Popular TV Shows](https://www.imdb.com/chart/tvmeter) | `popular_shows` | :x: | :heavy_check_mark: |
| [Top 250 TV Shows](https://www.imdb.com/chart/toptv) | `top_shows` | :x: | :heavy_check_mark: |
| [Top Rated Indian Movies](https://www.imdb.com/india/top-rated-indian-movies/) | `top_indian` | :heavy_check_mark: | :x: |
| [Lowest Rated Movies](https://www.imdb.com/chart/bottom) | `lowest_rated` | :heavy_check_mark: | :x: |
```yaml
collections:
IMDb Top 250:
imdb_chart: top_movies
collection_order: custom
sync_mode: sync
```
## IMDb List
Gets every movie/show in an IMDb List, [IMDb Keyword Search](https://www.imdb.com/search/keyword/), or [IMDb Title Search](https://www.imdb.com/search/title/)
Finds every item in an IMDb List, [IMDb Keyword Search](https://www.imdb.com/search/keyword/), or [IMDb Title Search](https://www.imdb.com/search/title/).
The expected input is an IMDb List URL or IMDb Search URL. Multiple values are supported as a list only a comma-separated string will not work.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
James Bonds:
imdb_list: https://www.imdb.com/list/ls006405458
collection_order: custom
sync_mode: sync
```
```yaml
collections:
IMDb Top 250:
imdb_list: https://www.imdb.com/search/title/?groups=top_250
collection_order: custom
sync_mode: sync
```
```yaml
collections:
Christmas:
imdb_list:
- https://www.imdb.com/list/ls025976544/
@ -43,20 +77,22 @@ collections:
collection_order: alpha
```
You can also limit the number of movies/shows to search for by using the `limit` and `url` parameters under `imdb_list`.
You can also limit the number of items to search for by using the `limit` and `url` parameters under `imdb_list`.
```yaml
collections:
IMDb Popular:
imdb_list:
url: https://www.imdb.com/search/title/?title_type=feature,tv_movie,documentary,short
limit: 50
collection_order: custom
sync_mode: sync
collection_order: alpha
```
This can be used for multiple lists as seen below.
```yaml
collections:
Top Action:
imdb_list:
- url: https://www.imdb.com/search/title/?title_type=feature&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=action
@ -64,3 +100,17 @@ This can be used for multiple lists as seen below.
- url: https://www.imdb.com/search/title/?title_type=feature&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=action&sort=user_rating,desc
limit: 100
```
You can also find episodes using `imdb_list` like so.
```yaml
collections:
The Simpsons Top 100 Episodes:
collection_order: custom
collection_level: episode
sync_mode: sync
imdb_list:
url: https://www.imdb.com/search/title/?series=tt0096697&sort=user_rating,desc
limit: 100
summary: The top 100 Simpsons episodes by IMDB user rating
```

@ -39,7 +39,9 @@ The table below shows the asset folder path structures that will be searched for
* Replace `.ext` with the image extension
* When `asset_folders` is set to true you can also nest movie/show folders inside other folders.
* When `asset_folders` is set to true you can also nest movie/show folders inside other folders, but you must specify how deep you want to search because the more levels to search the longer it takes.
* You can specify how deep you want to scan by using the `asset_depth` [Setting Attribute](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes#asset-depth).
Here's an example config folder structure with an assets directory with `asset_folders` set to true and false.

@ -0,0 +1,321 @@
## Local Installation
Testing has been done only on Python 3.6, 3.7, 3.8, and 3.9 on Linux and Windows. Dependencies must be installed by running:
```shell
pip install -r requirements.txt
```
If there are issues installing dependencies try:
```shell
pip install -r requirements.txt --ignore-installed
```
To run the script in an interactive terminal run:
```shell
python plex_meta_manager.py
```
## Docker Installation
A simple `Dockerfile` is available in this repo if you'd like to build it yourself. The official build is also available from dockerhub here: https://hub.docker.com/r/meisnate12/plex-meta-manager
```shell
docker run -it -v <PATH_TO_CONFIG>:/config:rw meisnate12/plex-meta-manager
```
* The `-it` allows you to interact with the script when needed.
* For example, it's required in order to go through the OAuth flow while connecting to Trakt or MyAnimeList.
* The `-v <PATH_TO_CONFIG>:/config:rw` mounts the location you choose as a persistent volume to store your files.
* Change `<PATH_TO_CONFIG>` to a folder where your config.yml and other files are.
* The docker image defaults to running the config named `config.yml` in your persistent volume.
* Use quotes around the whole thing if your path has spaces i.e. `-v "<PATH_TO_CONFIG>:/config:rw"`
Example
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager
```
## Run Commands
| Name | Shell Command | Environmental<br>Variable | Allowed Values | Default Value |
| :--- | :--- | :--- | :--- | :--- |
| [Config](#config) | `-c` or `--config` | `PMM_CONFIG` | Path to YAML config file | `config/config.yml` alongside<br>`plex_meta_manager.py` |
| [Time to Run](#time-to-run) | `-t` or `--time` | `PMM_TIME` | comma-separated list of times to update each day<br>**Format:** HH:MM | `03:00` |
| [Run](#run) | `-r` or `--run` | `PMM_RUN` | Run without the scheduler | `False` |
| [Run Tests](#run-tests) | `-rt`, `--tests`, or `--run-tests` | `PMM_TEST` | Run in debug mode with only collections that have `test: true` | `False` |
| [Run Collections Only](#collections-only) | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | Process only collections during the run | `False` |
| [Run Libraries Only](#libraries-only) | `-lo` or `--libraries-only` | `PMM_LIBRARIES_ONLY` | Process everything but collections during the run | `False` |
| [Run Collections](#run-collections) | `-rc` or `--run-collections` | `PMM_COLLECTIONS` | comma-separated list of collection names to process | All Collections |
| [Run Libraries](#run-libraries) | `-rl` or `--run-libraries` | `PMM_LIBRARIES` | comma-separated list of library names to process | All libraries |
| [Resume Run](#resume-run) | `-re` or `--resume` | `PMM_RESUME` | Name of the Collection you want to resume the run at | ` ` |
| [No Countdown](#no-countdown) | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | Run without displaying the countdown | `False` |
| [No Missing](#no-missing) | `-nm` or `--no-missing` | `PMM_NO_MISSING` | Run without any of the missing movie/show functions | `False` |
| [Read Only Config](#read-only-config) | `-ro` or `--read-only-config` | `PMM_READ_ONLY_CONFIG` | Run without writing to the config | `False` |
| [Divider Character](#divider-character--screen-width) | `-d` or `--divider` | `PMM_DIVIDER` | Character that divides the sections | `=` |
| [Screen Width](#divider-character--screen-width) | `-w` or `--width` | `PMM_WIDTH` | Integer between 90 and 300 | `100` |
* Environmental Variable values are used over Shell Command values
### Config
To choose the location of the YAML config file use the `--config` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --config <path_to_config>
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --config <path_to_config>
```
</details>
### Time to Run
To choose the times when the script will run each day use a comma-separated list with the `--time` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --time 22:00,03:00
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --time 22:00,03:00
```
</details>
### Run
To just run the script without having it continuously run use the `--run` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --run
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run
```
</details>
### Run Tests
To run the script in debug mode while only running collections that have `test: true` use the `--run-tests` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --run-tests
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-tests
```
</details>
### Collections Only
To have the script run only collections and not any library operations use the `--collections-only` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --collections-only
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --collections-only
```
</details>
### Libraries Only
To have the script run only library operations and not any collections use the `--libraries-only` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --libraries-only
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --libraries-only
```
</details>
### Run Collections
To have the script run only using the collections in the comma-separated list use the `--run-collections` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --run-collections "Harry Potter, Star Wars"
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-collections "Harry Potter, Star Wars"
```
</details>
### Run Libraries
To have the script run only the libraries in the comma-separated list use the `--run-libraries` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --run-libraries "TV Shows"
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --run-libraries "TV Shows"
```
</details>
### Resume Run
To have the script resume a run from a specific collection use the `--resume` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --resume "Star Wars"
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --resume "Star Wars"
```
</details>
### No Countdown
To have the script run without displaying a countdown use the `--no-countdown` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --no-countdown
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-countdown
```
</details>
### No Missing
To have the script run without any of the missing movie/show functions use the `--no-missing` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --no-missing
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --no-missing
```
</details>
### Read Only Config
To have the script run without writing to the config use the `--read-only-config` option
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --read-only-config
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --read-only-config
```
</details>
### Divider Character & Screen Width
To change the terminal output divider character or width use `--divider` and `--width`
<details>
<summary>Local</summary>
```shell
python plex_meta_manager.py --divider * --width 200
```
</details>
<details>
<summary>Docker</summary>
```shell
docker run -it -v "X:\Media\Plex Meta Manager\config:/config:rw" meisnate12/plex-meta-manager --divider * --width 200
```
</details>

@ -1,21 +1,25 @@
You can build different collections using the lists on [Letterboxd.com](https://letterboxd.com/) (Letterboxd).
You can find items using the lists on [Letterboxd.com](https://letterboxd.com/) (Letterboxd).
No configuration is required for these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [Letterboxd List](#letterboxd-list) | `letterboxd_list` | Gets every movie in the Letterboxd List | :heavy_check_mark: | :x: |
| [Letterboxd List Details](#letterboxd-list) | `letterboxd_list_details` | Gets every movie in the Letterboxd List and updates the collection with the description of the Letterboxd list | :heavy_check_mark: | :x: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [Letterboxd List](#letterboxd-list) | `letterboxd_list` | Finds every movie in the Letterboxd List | :heavy_check_mark: | :x: | :heavy_check_mark: |
| [Letterboxd List Details](#letterboxd-list) | `letterboxd_list_details` | Finds every movie in the Letterboxd List and updates the collection with the description of the Letterboxd list | :heavy_check_mark: | :x: | :heavy_check_mark: |
## Letterboxd List
Gets every movie in the Letterboxd List.
Finds every movie in the Letterboxd List.
The expected input is a Letterboxd List URL. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Vultures 101 Best Movie Endings:
letterboxd_list: https://letterboxd.com/brianformo/list/vultures-101-best-movie-endings/
collection_order: custom
sync_mode: sync
```
* You can update the collection details with the Letterboxd List's description by using `letterboxd_list_details`.
@ -25,4 +29,6 @@ collections:
collections:
Vultures 101 Best Movie Endings:
letterboxd_list_details: https://letterboxd.com/brianformo/list/vultures-101-best-movie-endings/
collection_order: custom
sync_mode: sync
```

@ -121,7 +121,7 @@ libraries:
metadata_path:
url: http://somesite.com/metadata_file.yml
```
To use a Metadata File from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository add `git` under metadata set to the oath in the repository.
To use a Metadata File from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository add `git` under metadata set to the path in the repository.
```yaml
libraries:
Movies:

@ -1,121 +0,0 @@
Testing has been done only on Python 3.6, 3.7, 3.8, and 3.9 on Linux and Windows. Dependencies must be installed by running:
```shell
pip install -r requirements.txt
```
If there are issues installing dependencies try:
```shell
pip install -r requirements.txt --ignore-installed
```
To run the script in an interactive terminal run:
```shell
python plex_meta_manager.py
```
### Commands
| Name | Shell Command | Environmental<br>Variable | Allowed Values | Default Value |
| :--- | :--- | :--- | :--- | :--- |
| [Config](#config) | `-c` or `--config` | `PMM_CONFIG` | Path to YAML config file | `config/config.yml` alongside<br>`plex_meta_manager.py` |
| [Time to Run](#time-to-run) | `-t` or `--time` | `PMM_TIME` | comma-separated list of times to update each day<br>**Format:** HH:MM | `03:00` |
| [Run](#run) | `-r` or `--run` | `PMM_RUN` | Run without the scheduler | `False` |
| [Run Tests](#run-tests) | `-rt`, `--tests`, or `--run-tests` | `PMM_TEST` | Run in debug mode with only collections that have `test: true` | `False` |
| [Run Collections Only](#collections-only) | `-co` or `--collections-only` | `PMM_COLLECTIONS_ONLY` | Process only collections during the run | `False` |
| [Run Libraries Only](#libraries-only) | `-lo` or `--libraries-only` | `PMM_LIBRARIES_ONLY` | Process everything but collections during the run | `False` |
| [Run Collections](#run-collections) | `-rc` or `--run-collections` | `PMM_COLLECTIONS` | comma-separated list of collection names to process | All Collections |
| [Run Libraries](#run-libraries) | `-rl` or `--run-libraries` | `PMM_LIBRARIES` | comma-separated list of library names to process | All libraries |
| [Resume Run](#resume-run) | `-re` or `--resume` | `PMM_RESUME` | Name of the Collection you want to resume the run at | ` ` |
| [No Countdown](#no-countdown) | `-nc` or `--no-countdown` | `PMM_NO_COUNTDOWN` | Run without displaying the countdown | `False` |
| [No Missing](#no-missing) | `-nm` or `--no-missing` | `PMM_NO_MISSING` | Run without any of the missing movie/show functions | `False` |
| [Divider Character](#divider-character--screen-width) | `-d` or `--divider` | `PMM_DIVIDER` | Character that divides the sections | `=` |
| [Screen Width](#divider-character--screen-width) | `-w` or `--width` | `PMM_WIDTH` | Integer between 90 and 300 | `100` |
* Environmental Variable values are used over Shell Command values
## Config
To choose the location of the YAML config file use the `--config` option
```shell
python plex_meta_manager.py --config <path_to_config>
```
## Time to Run
To choose the times when the script will run each day use a comma-separated list with the `--time` option
```shell
python plex_meta_manager.py --config /configs/config.yml --time 22:00,03:00
```
## Run
To just run the script without having it continuously run use the `--run` option
```shell
python plex_meta_manager.py --config /configs/config.yml --run
```
## Run Tests
To run the script in debug mode while only running collections that have `test: true` use the `--run-tests` option
```shell
python plex_meta_manager.py --config /configs/config.yml --run-tests
```
## Collections Only
To have the script run only collections and not any library operations use the `--collections-only` option
```shell
python plex_meta_manager.py --config /configs/config.yml --collections-only
```
## Libraries Only
To have the script run only library operations and not any collections use the `--libraries-only` option
```shell
python plex_meta_manager.py --config /configs/config.yml --libraries-only
```
## Run Collections
To have the script run only using the collections in the comma-separated list use the `--run-collections` option
```shell
python plex_meta_manager.py --config /configs/config.yml --run-collections "Harry Potter, Star Wars"
```
## Run Libraries
To have the script run only the libraries in the comma-separated list use the `--run-libraries` option
```shell
python plex_meta_manager.py --config /configs/config.yml --run-libraries "TV Shows"
```
## Resume Run
To have the script resume a run from a specific collection use the `--resume` option
```shell
python plex_meta_manager.py --config /configs/config.yml --resume "Star Wars"
```
## No Countdown
To have the script run without displaying a countdown use the `--no-countdown` option
```shell
python plex_meta_manager.py --config /configs/config.yml --no-countdown
```
## No Missing
To have the script run without any of the missing movie/show functions use the `--no-missing` option
```shell
python plex_meta_manager.py --config /configs/config.yml --no-missing
```
## Divider Character & Screen Width
To change the terminal output divider character or width use `--divider` and `--width`
```shell
python plex_meta_manager.py --divider * --width 200
```

@ -0,0 +1,85 @@
## Metadata Details
All the following attributes update various details of the collection/playlist's Metadata.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| TMDb Person | `tmdb_person` | Used to change the collection/playlist's summary and poster to a TMDb Person's biography and profile as well as allow the people specified to be used in [Plex Searches](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders#plex-search) | TMDb Person ID (List or Comma-separated string) | :heavy_check_mark: |
| Sort Title | `sort_title` | Used to change the collection's sort title | Text to change Sort Title | :x: |
| Content Rating | `content_rating` | Used to change the collection's content rating | Text to change Content Rating | :x: |
| Label | `label` | Used to append new labels to the collection | Comma-separated string of labels to append | :x: |
| Label Remove | `label.remove` | Used to remove existing labels from the collection | Comma-separated string of labels to remove | :x: |
| Label Sync | `label.sync` | Matches the labels of the collection to the labels provided (Leave blank to remove all labels) | Comma-separated string of labels to sync | :x: |
| 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 | :x: |
| 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: | :x: |
| Collection Level | `collection_level` | Used to make episode or season collections from `plex_search`, `trakt_list`, or `imdb_list` Builders | `season`: Collection contains seasons<br>`episode`: Collection contains episodes } :x: |
| Visible on Library | `visible_library` | Used to change collection visible on Library | `true`: Visible<br>`false`: Not Visible<br>Any [`schedule`](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) | :x: |
| Visible on Home | `visible_home` | Used to change collection visible on Home | `true`: Visible<br>`false`: Not Visible<br>Any [`schedule`](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) | :x: |
| Visible on Shared | `visible_shared` | Used to change collection visible on Shared Users' Home | `true`: Visible<br>`false`: Not Visible<br>Any [`schedule`](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) | :x: |
* **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 `~`.
* **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/playlist.
| Name | Attribute | Description | Allowed Values | Works with Movies | Works with Shows | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: | :---: | :---: |
| Label | `item_label` | Used to append new labels to every movie/show in the collection | Comma-separated string of labels to append | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Label Remove | `item_label.remove` | Used to remove existing labels from every movie/show in the collection | Comma-separated string of labels to remove | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Label Sync | `item_label.sync` | Matches the labels of every movie/show in the collection to the labels provided (Leave blank to remove all labels) | Comma-separated string of labels to sync | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Lock Posters | `item_lock_poster` | Locks the poster of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Lock Backgrounds | `item_lock_background` | Locks the background of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Lock Titles | `item_lock_title` | Locks the title of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Image Overlay | `item_overlay` | Adds and overlay image to the poster of every movie/show in the collection | [`item_overlay` details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Overlay-Attribute) | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Check For Assets | `item_assets` | Checks your assets folders for assets of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Refresh Item | `item_refresh` | Refreshes the metadata of every movie/show in the collection | `true` or `false`<br>**Default:** false | :heavy_check_mark: | :heavy_check_mark: | :x: |
| TMDb Season Titles | `item_tmdb_season_titles` | Changes the season titles of every show in the collection to match TMDb | `true` or `false`<br>**Default:** false | :x: | :heavy_check_mark: | :x: |
| Episode Sorting | `item_episode_sorting` | Changes the episode sorting of every show in the collection | `default`: Library default<br>`oldest`: Oldest first<br>`newest`: Newest first | :x: | :heavy_check_mark: | :x: |
| Keep Episodes | `item_keep_episodes` | Changes the keep episodes of every show in the collection | `all`: All episodes<br>`5_latest`: 5 latest episodes<br>`3_latest`: 3 latest episodes<br>`latest`: Latest episodes<br>`past_3`: Episodes added in the past 3 days<br>`past_7`: Episodes added in the past 7 days<br>`past_30`: Episodes added in the past 30 days | :x: | :heavy_check_mark: | :x: |
| Delete Episodes | `item_delete_episodes` | Changes the delete episodes of every show in the collection | `never`: Never<br>`day`: After a day<br>`week`: After a week<br>`refresh`: On next refresh | :x: | :heavy_check_mark: | :x: |
| Season Display | `item_season_display` | Changes the season display of every show in the collection | `default`: Library default<br>`show`: Show<br>`hide`: Hide | :x: | :heavy_check_mark: | :x: |
| Episode Ordering | `item_episode_ordering` | Changes the episode ordering of every show in the collection | `default`: Library default<br>`tmdb_aired`*: The Movie Database (Aired)<br>`tvdb_aired`: TheTVDB (Aired)<br>`tvdb_dvd`: TheTVDB (DVD)<br>`tvdb_absolute`: TheTVDB (Absolute) | :x: | :heavy_check_mark: | :x: |
| Metadata Language* | `item_metadata_language` | Changes the metadata language of every movie/show in the collection | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` | :heavy_check_mark: | :heavy_check_mark: | :x: |
| Use Original Title* | `item_use_original_title` | Changes the use original title of every movie/show in the collection | `default`: Library default<br>`no`: No<br>`yes`: Yes | :heavy_check_mark: | :heavy_check_mark: | :x: |
\* Must be using the **New Plex Movie Agent** or the **New Plex TV Agent**
## Summary Details
All the following attributes update the summary of the collection/playlist from various sources.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| Summary | `summary` | Used to change the collection/playlist's summary | Text to change Summary | :heavy_check_mark: |
| TMDb Summary | `tmdb_summary` | Used to change the collection/playlist's summary to the TMDb Movie/Collection summary for a movie library or the TMDb Show summary for a show library | TMDb Movie/Show/Collection ID | :heavy_check_mark: |
| TMDb Description | `tmdb_description` | Used to change the collection/playlist's summary to the TMDb List Description | TMDb List ID | :heavy_check_mark: |
| TMDb Biography | `tmdb_biography` | Used to change the collection/playlist's summary to the TMDb Person's biography | TMDb Person ID | :heavy_check_mark: |
| TVDb Summary | `tvdb_summary` | Used to change the collection/playlist's summary to the TVDb Movie summary for a movie library or the TVDb Show summary for a show library | TVDb Movie/Show ID or URL | :heavy_check_mark: |
| TVDb Description | `tvdb_description` | Used to change the collection/playlist's summary to the TVDb List Description | TVDb List URL | :heavy_check_mark: |
| Trakt Description | `trakt_description` | Used to change the collection/playlist's summary to the Trakt List Description | Trakt List URL | :heavy_check_mark: |
| Letterboxd Description | `letterboxd_description` | Used to change the collection/playlist's summary to the Letterboxd List Description | Letterboxd List URL | :heavy_check_mark: |
## Poster Details
All the following attributes update the poster of the collection/playlist from various sources.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| URL Poster<sup>2</sup> | `url_poster` | Used to change the collection/playlist's poster to the URL | URL of image publicly available on the internet | :heavy_check_mark: |
| TMDb Poster<sup>2</sup> | `tmdb_poster` | Used to change the collection/playlist's poster to the TMDb Movie/Collection poster for a movie library or the TMDb Show poster for a show library | TMDb Movie/Show/Collection ID | :heavy_check_mark: |
| TMDb List Poster<sup>2</sup> | `tmdb_list_poster` | Used to change the collection/playlist's poster to the TMDb List poster | TMDb List ID | :heavy_check_mark: |
| TMDb Profile<sup>2</sup> | `tmdb_profile` | Used to change the collection/playlist's poster to the TMDb Person's profile | TMDb Person ID | :heavy_check_mark: |
| TVDb Poster<sup>2</sup> | `tvdb_poster` | Used to change the collection/playlist's poster to the TVDb Movie poster for a movie library or the TVDb Show poster for a show library | TVDb Movie/Show ID or URL | :heavy_check_mark: |
| File Poster<sup>2</sup> | `file_poster` | Used to change the collection/playlist's poster to the image in the file system | Path to image in the file system | :heavy_check_mark: |
* If no poster is specified the script will look in the library's [Image Asset Directories](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `poster.ext` file in that folder (replacing .ext with the image extension).
## Background Details
All the following attributes update the background of the collection/playlist from various sources.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| URL Background<sup>3</sup> | `url_background` | Used to change the collection/playlist's background to the URL | URL of image publicly available on the internet | :x: |
| TMDb Background<sup>3</sup> | `tmdb_background` | Used to change the collection/playlist's background to the TMDb Movie/Collection background for a movie library or the TMDb Show background for a show library | TMDb Movie/Show/Collection ID | :x: |
| TVDb Background<sup>3</sup> | `tvdb_background` | Used to change the collection/playlist's background to the TVDb Movie background for a movie library or the TVDb Show background for a show library | TVDb Movie/Show ID or URL | :x: |
| File Background<sup>3</sup> | `file_background` | Used to change the collection/playlist's background to the image in the file system | Path to image in the file system | :x: |
* If no background is specified the script will look in the library's [Image Asset Directories](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) for a folder named either the collection/playlist name or the `name_mapping` if specified and look for a `background.ext` file in that folder (replacing .ext with the image extension).

@ -1,16 +0,0 @@
The main goal of the script is to allow a complete recreation of your library just from the Metadata File and to dynamically build and maintain collections.
To do that you have to specify the metadata and collections in a Metadata File that is defined by the [Libraries attribute](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Libraries-Attributes) in the Configuration File.
You must have at least one Metadata file per Library.
There are three mappings allowed in the Metadata File's root:
| Name | Attribute | Description |
| :--- | :--- | :--- |
| [Metadata](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Metadata-Attributes) | `metadata` | mapping where metadata changes go |
| [Templates](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Template-Attributes) | `templates` | mapping where templates for automatic collections go |
| [Collections](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Attributes) | `collections` | mapping where automatic collections and collection metadata go |
* Either `metadata` or `collections` is required in order to run.
* You can find example Metadata Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs)

@ -0,0 +1,81 @@
The main goal of the script is to allow a complete recreation of your library just from the Metadata File and to dynamically build and maintain collections and playlists.
You specify the metadata and collections in a Metadata File that is defined by the [Libraries Attribute](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Libraries-Attributes) in the Configuration File.
While you specify playlists in a Playlist File that is defined by the [Playlist Files Attribute](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Playlist-Files-Attributes) in the Configuration File.
## Metadata Files
There are three mappings allowed in the Metadata File's root:
| Name | Attribute | Description |
| :--- | :--- | :--- |
| [Metadata](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Metadata-Attributes) | `metadata` | mapping where metadata changes go |
| [Templates](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Template-Attributes) | `templates` | mapping where templates for automatic collections go |
| [Collections](#collections-and-playlists-mappings) | `collections` | mapping where automatic collections and collection metadata go |
* Either `metadata` or `collections` is required in order to run the Metadata File.
* You can find example Metadata Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs)
## Playlist Files
There are two mappings allowed in the Playlist File's root:
| Name | Attribute | Description |
| :--- | :--- | :--- |
| [Templates](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Template-Attributes) | `templates` | mapping where templates for automatic collections go |
| [Playlists](#playlist-mapping-additional-requirements) | `playlists` | mapping where automatic playlists and playlist metadata go |
* `playlists` is required in order to run the Playlist File.
* You can find example Playlist Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs)
## Collections and Playlists Mappings
The script can run different collection/playlist operations like automatically build collections/playlists, send missing movies/series to radarr/sonarr, and even refresh item's added within the last 30 days in order to update their metadata all using the `collections`/`platlists` attributes.
Each collection/playlist operation is defined by the mapping name which becomes the name of the Plex collection/playlist if it's created.
There are three types of attributes in a collection/playlist
1. **Builders:** an attribute that finds items to be added to the collection/playlist. Multiple builders can be used in the same collection/playlist from a variety of sources listed below.
* [Plex Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Plex-Builders)
* [Smart Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Smart-Builders)
* [TMDb Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/TMDb-Builders)
* [TVDb Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/TVDb-Builders)
* [IMDb Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/IMDb-Builders)
* [Trakt Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Trakt-Builders)
* [Tautulli Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Tautulli-Builders)
* [Letterboxd Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Letterboxd-Builders)
* [ICheckMovies Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/ICheckMovies-Builders)
* [FlixPatrol Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/FlixPatrol-Builders)
* [StevenLu Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/StevenLu-Builders)
* [AniDB Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/AniDB-Builders)
* [AniList Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/AniList-Builders)
* [MyAnimeList Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/MyAnimeList-Builders)
2. **Details:** an attribute that changes anything about the metadata of the item or about how the script functions for th collection/playlist
* [Setting Details](Setting-Details)
* [Schedule Detail](Schedule-Detail)
* [Image Overlay Detail](Image-Overlay-Detail)
* [Metadata Details](Metadata-Details)
* [Arr Details](Arr-Details)
3. **[Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Filters):** attributes that filters items added to all Builders
## Playlist Mapping Additional Requirements
Each playlist operation requires the `libraries` attribute. Which is how the script knows which libraries to search for items in.
The names can either be a list or comma-separated string of names that match the mapping names defined in your Configuration File.
```yaml
plalists:
Marvel Cinematic Universe:
sync_mode: sync
libraries: Movies, TV Shows
trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe?sort=rank,asc
summary: Marvel Cinematic Universe In Chronological Order
```
**Note: For a library to be able to be used with the playlist it must be defined in the Configuration File's `libraries` attribute.**
**Note: Playlists can only have a max of one Builder because they are all inherently ordered.**

@ -44,4 +44,4 @@ To authenticate MyAnimeList the first time, you need run the container with the
#### OAuth Flow using unRAID Docker
Directions on how to authenticate MyAnimeList on unRAID can be found on the [unRAID Installation](https://github.com/meisnate12/Plex-Meta-Manager/wiki/unRAID-Installation#advanced-installation-authenticating-trakt-or-myanimelist) page.
Directions on how to authenticate MyAnimeList on unRAID can be found on the [unRAID Installation](https://github.com/meisnate12/Plex-Meta-Manager/wiki/unRAID-Walkthrough#advanced-installation-authenticating-trakt-or-myanimelist) page.

@ -1,24 +1,24 @@
You can build different collections using the features of [MyAnimeList.net](https://myanimelist.net/) (MyAnimeList).
You can find anime using the features of [MyAnimeList.net](https://myanimelist.net/) (MyAnimeList).
[Configuring MyAnimeList](https://github.com/meisnate12/Plex-Meta-Manager/wiki/MyAnimeList-Attributes) in the config is required for any of these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [MyAnimeList Top All Anime](#myanimelist-top-all-anime) | `mal_all` | Gets every anime in MyAnimeList's [Top All Anime](https://myanimelist.net/topanime.php) list | :heavy_check_mark: | :heavy_check_mark:
| [MyAnimeList Top Airing Anime](#myanimelist-top-airing-anime) | `mal_airing` | Gets every anime in MyAnimeList's [Top Airing Anime](https://myanimelist.net/topanime.php?type=airing) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Upcoming Anime](#myanimelist-top-upcoming-anime) | `mal_upcoming` | Gets every anime in MyAnimeList's [Top Upcoming Anime](https://myanimelist.net/topanime.php?type=upcoming) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime TV Series](#myanimelist-top-anime-tv-series) | `mal_tv` | Gets every anime in MyAnimeList's [Top Anime TV Series](https://myanimelist.net/topanime.php?type=tv) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime Movies](#myanimelist-top-anime-movies) | `mal_movie` | Gets every anime in MyAnimeList's [Top Anime Movies](https://myanimelist.net/topanime.php?type=movie) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime OVA Series](#myanimelist-top-anime-ova-series) | `mal_ova` | Gets every anime in MyAnimeList's [Top Anime OVA Series](https://myanimelist.net/topanime.php?type=ova) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime Specials](#myanimelist-top-anime-specials) | `mal_special` | Gets every anime in MyAnimeList's [Top Anime Specials](https://myanimelist.net/topanime.php?type=special) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Most Popular Anime](#myanimelist-most-popular-anime) | `mal_popular` | Gets every anime in MyAnimeList's [Most Popular Anime](https://myanimelist.net/topanime.php?type=bypopularity) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Most Favorited Anime](#myanimelist-most-favorited-anime) | `mal_favorite` | Gets every anime in MyAnimeList's [Most Favorited Anime](https://myanimelist.net/topanime.php?type=favorite) list | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Suggested Anime](#myanimelist-suggested-anime) | `mal_suggested` | Gets the suggested anime in by MyAnimeList for the authorized user | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList ID](#myanimelist-id) | `mal_id` | Gets the anime specified by the MyAnimeList ID | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList User Anime List](#myanimelist-user-anime-list) | `mal_userlist` | Gets anime in MyAnimeList User's Anime list the options are detailed below | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Seasonal Anime](#myanimelist-seasonal-anime) | `mal_season` | Gets anime in MyAnimeList's [Seasonal Anime](https://myanimelist.net/anime/season) list the options are detailed below | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Genre](#myanimelist-genre) | `mal_genre` | Gets every anime tagged with the specified genre id. Genre options can be found on [MyAnimeList's Search](https://myanimelist.net/anime.php) | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Studio](#myanimelist-studio) | `mal_studio` | Gets every anime tagged with the specified studio/producer/licensor id. Studio options can be found on [MyAnimeList's Search](https://myanimelist.net/anime.php) | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [MyAnimeList Top All Anime](#myanimelist-top-all-anime) | `mal_all` | Finds every anime in MyAnimeList's [Top All Anime](https://myanimelist.net/topanime.php) list | :heavy_check_mark: | :heavy_check_mark: :heavy_check_mark: |
| [MyAnimeList Top Airing Anime](#myanimelist-top-airing-anime) | `mal_airing` | Finds every anime in MyAnimeList's [Top Airing Anime](https://myanimelist.net/topanime.php?type=airing) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Upcoming Anime](#myanimelist-top-upcoming-anime) | `mal_upcoming` | Finds every anime in MyAnimeList's [Top Upcoming Anime](https://myanimelist.net/topanime.php?type=upcoming) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime TV Series](#myanimelist-top-anime-tv-series) | `mal_tv` | Finds every anime in MyAnimeList's [Top Anime TV Series](https://myanimelist.net/topanime.php?type=tv) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime Movies](#myanimelist-top-anime-movies) | `mal_movie` | Finds every anime in MyAnimeList's [Top Anime Movies](https://myanimelist.net/topanime.php?type=movie) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime OVA Series](#myanimelist-top-anime-ova-series) | `mal_ova` | Finds every anime in MyAnimeList's [Top Anime OVA Series](https://myanimelist.net/topanime.php?type=ova) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Top Anime Specials](#myanimelist-top-anime-specials) | `mal_special` | Finds every anime in MyAnimeList's [Top Anime Specials](https://myanimelist.net/topanime.php?type=special) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Most Popular Anime](#myanimelist-most-popular-anime) | `mal_popular` | Finds every anime in MyAnimeList's [Most Popular Anime](https://myanimelist.net/topanime.php?type=bypopularity) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Most Favorited Anime](#myanimelist-most-favorited-anime) | `mal_favorite` | Finds every anime in MyAnimeList's [Most Favorited Anime](https://myanimelist.net/topanime.php?type=favorite) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Suggested Anime](#myanimelist-suggested-anime) | `mal_suggested` | Finds the suggested anime in by MyAnimeList for the authorized user | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList ID](#myanimelist-id) | `mal_id` | Finds the anime specified by the MyAnimeList ID | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [MyAnimeList User Anime List](#myanimelist-user-anime-list) | `mal_userlist` | Finds anime in MyAnimeList User's Anime list the options are detailed below | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Seasonal Anime](#myanimelist-seasonal-anime) | `mal_season` | Finds anime in MyAnimeList's [Seasonal Anime](https://myanimelist.net/anime/season) list the options are detailed below | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Genre](#myanimelist-genre) | `mal_genre` | Finds every anime tagged with the specified genre id. Genre options can be found on [MyAnimeList's Search](https://myanimelist.net/anime.php) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [MyAnimeList Studio](#myanimelist-studio) | `mal_studio` | Finds every anime tagged with the specified studio/producer/licensor id. Studio options can be found on [MyAnimeList's Search](https://myanimelist.net/anime.php) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## Expected Input
The builders below are expected to have a single integer value of how many movies/shows to query.
@ -35,105 +35,134 @@ The builders below are expected to have a single integer value of how many movie
The attributes of [MyAnimeList ID](#myanimelist-id), [MyAnimeList Seasonal Anime](#myanimelist-seasonal-anime), [MyAnimeList User Anime List](#myanimelist-user-anime-list), [MyAnimeList Genre](#myanimelist-genre), and [MyAnimeList Studio](#myanimelist-studio) are detailed in their sections below.
The `sync_mode: sync` option is also recommended for all MyAnimeList builders since the lists they're based on are continuously updated.
## MyAnimeList Top All Anime
Gets every anime in MyAnimeList's [Top Airing Anime](https://myanimelist.net/topanime.php?type=airing) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top All Anime:
mal_all: 30
collection_order: custom
sync_mode: sync
```
## MyAnimeList Top Airing Anime
Gets every anime in MyAnimeList's [Top Airing Anime](https://myanimelist.net/topanime.php?type=airing) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Airing Anime:
mal_airing: 10
collection_order: custom
sync_mode: sync
```
## MyAnimeList Top Upcoming Anime
Gets every anime in MyAnimeList's [Top Upcoming Anime](https://myanimelist.net/topanime.php?type=upcoming) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Upcoming Anime:
mal_upcoming: 10
collection_order: custom
sync_mode: sync
```
## MyAnimeList Top Anime TV Series
Gets every anime in MyAnimeList's [Top Anime TV Series](https://myanimelist.net/topanime.php?type=tv) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Anime TV Series:
mal_tv: 20
collection_order: custom
sync_mode: sync
```
## MyAnimeList Top Anime Movies
Gets every anime in MyAnimeList's [Top Anime Movies](https://myanimelist.net/topanime.php?type=movie) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Anime Movies:
mal_movie: 20
collection_order: custom
sync_mode: sync
```
## MyAnimeList Top Anime OVA Series
Gets every anime in MyAnimeList's [Top Anime OVA Series](https://myanimelist.net/topanime.php?type=ova) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Anime OVA Series:
mal_ova: 20
collection_order: custom
sync_mode: sync
```
## MyAnimeList Top Anime Specials
Gets every anime in MyAnimeList's [Top Anime Specials](https://myanimelist.net/topanime.php?type=special) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top Anime Specials:
mal_special: 20
collection_order: custom
sync_mode: sync
```
## MyAnimeList Most Popular Anime
Gets every anime in MyAnimeList's [Most Popular Anime](https://myanimelist.net/topanime.php?type=bypopularity) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Most Popular Anime:
mal_popular: 20
collection_order: custom
sync_mode: sync
```
## MyAnimeList Most Favorited Anime
Gets every anime in MyAnimeList's [Most Favorited Anime](https://myanimelist.net/topanime.php?type=favorite) list. (Maximum: 500)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Most Favorited Anime:
mal_favorite: 20
collection_order: custom
sync_mode: sync
```
## MyAnimeList Suggested Anime
Gets the suggested anime in by MyAnimeList for the authorized user. (Maximum: 100)
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Suggested Anime:
mal_suggested: 20
collection_order: custom
sync_mode: sync
```
@ -151,6 +180,8 @@ collections:
## MyAnimeList User Anime List
Gets anime in MyAnimeList User's Anime list. The different sub-attributes are detailed below.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
| Attribute | Description | Required | Default |
| :--- | :--- | :---: | :---: |
| `username` | A user's MyAnimeList Username or `@me` for the authorized user | :heavy_check_mark: | N/A |
@ -166,12 +197,15 @@ collections:
status: watching
sort_by: score
limit: 500
collection_order: custom
sync_mode: sync
```
## MyAnimeList Seasonal Anime
Gets anime in MyAnimeList's [Seasonal Anime](https://myanimelist.net/anime/season) list the options are detailed below.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
| Attribute | Description | Required | Default |
| :--- | :--- | :---: | :---: |
| `season` | `winter` (For winter season January, February, March)<br>`spring` (For spring season April, May, June)<br>`summer` (For summer season July, August, September)<br>`fall` (For fall season October, November, December) | :x: | Current Season |
@ -185,6 +219,7 @@ collections:
mal_season:
sort_by: members
limit: 50
collection_order: custom
sync_mode: sync
```
```yaml
@ -194,12 +229,15 @@ collections:
season: fall
year: 2020
limit: 50
collection_order: custom
sync_mode: sync
```
## MyAnimeList Genre
Gets every anime tagged with the specified genre ID sorted by members the options are detailed below.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
* Genre options can be found on [MyAnimeList's Search](https://myanimelist.net/anime.php) Page.
* To find the ID click on a Genre in the link above and there should be a number in the URL that's the `genre_id`.
* For example if the url is `https://myanimelist.net/anime/genre/1/Action` the `genre_id` would be `1`.
@ -214,12 +252,15 @@ collections:
Sports Anime:
mal_genre:
genre_id: 30
collection_order: custom
sync_mode: sync
```
## MyAnimeList Studio
Gets every anime tagged with the specified studio/producer/licensor ID sorted by members the options are detailed below.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
* Studio options can be found on [MyAnimeList's Search](https://myanimelist.net/anime.php) Page.
* To find the ID click on a Studio in the link above and there should be a number in the URL that's the `studio_id`.
* For example if the url is `https://myanimelist.net/anime/producer/4/Bones` the `studio_id` would be `4`.
@ -234,5 +275,6 @@ collections:
Bones Studio Anime:
mal_studio:
studio_id: 4
collection_order: custom
sync_mode: sync
```

@ -17,6 +17,8 @@ The available operations attributes for each library are as follows
| Name | Attribute | Description | Allowed Values |
| :--- | :--- | :--- | :--- |
| [TMDb Collections](#tmdb-collections) | `tmdb_collections` | Builds Collections for every movie in your library based on TMDb Collections | [`tmdb_collections` mapping details](#tmdb-collections) |
| [Genre Mapper](#genre-mapper) | `genre_mapper` |Will check every item in your library and changed mapped genres | [`genre_mapper` mapping details](#genre-mapper) |
| Image Assets For All | `assets_for_all` | Search in assets for images for every item in your library | `true` or `false` |
| Delete Collections With Less | `delete_collections_with_less` | Deletes every collection with less then the given number | number greater then 0 |
| Delete Unmanaged Collections | `delete_unmanaged_collections` | Deletes every unmanaged collection | `true` or `false` |
@ -24,11 +26,12 @@ The available operations attributes for each library are as follows
| Mass Audience Rating Update | `mass_audience_rating_update` | Updates every item's audience rating in the library to the chosen site's rating | `tmdb`: Use TMDb for Rating<br>`omdb`: Use IMDb through OMDb for Rating |
| Mass Critic Rating Update | `mass_critic_rating_update` | Updates every item's critic rating in the library to the chosen site's rating | `tmdb`: Use TMDb for Rating<br>`omdb`: Use IMDb through OMDb for Rating |
| 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 | `true` or `false` |
| Mass Collection Mode | `mass_collection_mode` | Updates every Collection in your library to the specified 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 |
| Split Duplicates | `split_duplicates` | Splits all duplicate movies/shows found in this library | `true` or `false` |
| Radarr Add All | `radarr_add_all` | Adds every item in the library to Radarr | `true` or `false` |
| Radarr Remove By Tag | `radarr_remove_by_tag` | Removes every item from Radarr with the Tags given | List or comma separated string of tags |
| Sonarr Add All | `sonarr_add_all` | Adds every item in the library to Sonarr | `true` or `false` |
| [TMDb Collections](#tmdb-collections) | `tmdb_collections` | Builds Collections for every movie in your library based on TMDb Collections | [`tmdb_collections` mapping details](#tmdb-collections) |
| [Genre Mapper](#genre-mapper) | `genre_mapper` |Will check every item in your library and changed mapped genres | [`genre_mapper` mapping details](#genre-mapper) |
| Sonarr Remove By Tag | `sonarr_remove_by_tag` | Removes every item from Sonarr with the Tags given | List or comma separated string of tags |
* When using `radarr_add_all` or `sonarr_add_all` the existing paths in plex will be used as the root folder of each item.
* If the paths in Plex are not the same as your Radarr/Sonarr paths you can use the `plex_path` and `radarr_path`/`sonarr_path` [Radarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Radarr-Attributes)/[Sonarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Sonarr-Attributes) details to convert the paths
@ -64,7 +67,8 @@ library:
There are two other attributes that can be used under `tmdb_collections`
* `exclude_ids`: list or comma separate list of TMDb Collection IDs to ignore
* `remove_suffix`: Removes the suffix given from the TMDb Collection names. i.e. `Star Wars Collection` -> `Star Wars`
* `remove_suffix`: Removes the suffix given from the TMDb Collection names. i.e. `Star Wars Collection` -> `Star Wars`. Multiple suffixes can be given as a list or comma separated string.
* `dictionary_variables`: Variable changes by TMDb Collection ID This can allow you to have other attributes change per Collection.
```yaml
library:
@ -74,9 +78,17 @@ library:
exclude_ids:
- 10
remove_suffix: Collection
dictionary_variables:
poster:
my_collection_poster:
119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg
531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg
template:
optional:
- poster
tmdb_collection_details: <<collection_id>>
collection_order: release
url_poster: <<my_collection_poster>>
```
* If the Collection is defined in another Metadata file (i.e. you define your own `Star Wars` Collection) then it will not run under `tmdb_collections` as long as the collection names match.

@ -0,0 +1,34 @@
Since playlists are not specific to one library they will need their own special [Playlist File](Metadata-and-Playlist-File) to work.
You can define Playlist Files by using `playlist_files`. They can either be on the local system, online at an url, or directly from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository.
By default, when `playlist_files` is missing the script will look in your config directory for `playlists.yml`.
To use a local Playlist File add `file` under playlist_files set to the system path of the yaml file.
```yaml
playlist_files:
file: /config/My Movies Playlists.yml
```
To use all yaml files in a particular folder add `folder` under playlist_files set to the system path of the folder containing the yaml files.
```yaml
playlist_files:
folder: /config/Movie Playlists/
```
To use a Playlist File online add `url` under playlist_files set to the url of the yaml file.
```yaml
playlist_files:
url: http://somesite.com/playlist_file.yml
```
To use a Playlist File from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository add `git` under playlist_files set to the path in the repository.
```yaml
playlist_files:
git: meisnate12/Playlists
```
You can specify multiple paths of any type using a list like below.
```yaml
playlist_files:
- file: /config/My Movies Playlists.yml
- file: /config/My Shows Playlists.yml
- url: http://somesite.com/playlist_file.yml
- git: meisnate12/Playlists
```

@ -1,15 +1,15 @@
You can build different collections using the features of Plex.
This builder finds its items by using the features of Plex.
No configuration is required for these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [Plex All](#plex-all) | `plex_all` | Gets every movie/show in your library. Useful with [collection filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Filters) | :heavy_check_mark: | :heavy_check_mark: |
| [Plex Collectionless](#plex-collectionless) | `plex_collectionless` | Gets every movie/show that is not in a collection | :heavy_check_mark: | :heavy_check_mark: |
| [Plex Search](#plex-search) | `plex_search` | Gets every movie/show based on the search parameters provided | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [Plex All](#plex-all) | `plex_all` | Gets every movie/show in your library. Useful with [Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Filters) | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Plex Collectionless](#plex-collectionless) | `plex_collectionless` | Gets every movie/show that is not in a collection | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Plex Search](#plex-search) | `plex_search` | Gets every movie/show based on the search parameters provided | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## Plex All
Gets every movie/show in your library. Useful with [collection filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Filters).
Finds every item in your library. Useful with [Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Filters).
The expected input is either true or false.
@ -24,7 +24,7 @@ collections:
## Plex Collectionless
**This is not needed if you're using [Smart Label Collections](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Smart-Builders#smart-label).**
Gets every movie/show that is not in a collection unless the collection is in the exclusion list. This is a special collection type to help keep your library looking correct. When items in your library are in multiple collections it can mess up how they're displayed in your library.
Finds every item that is not in a collection unless the collection is in the exclusion list. This is a special collection type to help keep your library looking correct. When items in your library are in multiple collections it can mess up how they're displayed in your library.
For Example, if you have a `Marvel Cinematic Universe` Collection set to `Show this collection and its items` and an `Iron Man` Collection set to `Hide items in this collection` what happens is the show overrides the hide and you end up with both the collections and the 3 Iron Man movies all displaying.
@ -52,7 +52,7 @@ 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 [Advance Filters](https://support.plex.tv/articles/201273953-collections/) to add all items to a collection based on the search parameters provided.
Uses Plex's [Advance Filters](https://support.plex.tv/articles/201273953-collections/) to find all items based on the search parameters provided.
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.
@ -66,10 +66,10 @@ There are a couple other attributes you can have at the top level only along wit
| 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 |
| Type | `type` | The Type of items inside this collection/playlist<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 search | all |
| Sort By | `sort_by` | This will control how the search 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` |
| Validate | `validate` | Determines if a collection/playlist will fail on a validation error<br>**Options**: `true` or `false` | `true` |
## Sort Options
@ -245,6 +245,7 @@ collections:
```yaml
collections:
Top Action Movies:
collection_order: custom
plex_search:
all:
genre: Action
@ -278,6 +279,7 @@ collections:
```yaml
collections:
Best 2010+ Movies:
collection_order: custom
plex_search:
all:
year.gte: 2010
@ -285,7 +287,23 @@ collections:
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.
Here's an example of an episode collection using `plex_search`.
```yaml
collections:
Top 100 Simpsons Episodes:
collection_order: custom
collection_level: episode
plex_search:
type: episodes
sort_by: audience_rating.desc
limit: 100
all:
title.ends: "Simpsons"
summary: A collection of the highest rated simpsons epsodes.
```
If you specify TMDb Person ID's using the Detail `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:

@ -39,4 +39,6 @@ radarr:
* The `quality_profile` must be the exact name of the desired quality profile, including all spaces and capitalization.
* You can set most attributes per collection by using the [Radarr Collection Detail](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details#radarr-attributes)
* You can set most attributes per collection by using the [Radarr Collection Detail](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details#radarr-attributes)
![Radarr Details](https://raw.githubusercontent.com/wiki/meisnate12/Plex-Meta-Manager/radarr1.png)

@ -1,6 +1,21 @@
The script is designed so that while running the collections will update once a day. If you want a collection to only update on specific days you can add the `schedule` attribute to it.
The script is designed to run continuously and certain attributes can be scheduled using these attributes.
Below is an example of a collection with multiple schedules:
Below is an example of a scheduled library:
```yaml
libraries:
Movies:
schedule: weekly(sunday)
metadata_path:
- file: config/Movies.yml
- git: meisnate12/MovieCharts
- git: meisnate12/Studios
- git: meisnate12/IMDBGenres
- git: meisnate12/People
operations:
mass_critic_rating_update: tmdb
```
Below is an example of a scheduled collection:
```yaml
collections:
TMDb Trending Weekly:
@ -13,18 +28,28 @@ collections:
schedule: monthly(1), monthly(15)
```
Below is an example of a scheduled pinning collection:
```yaml
collections:
Christmas Movies:
imdb_list: https://www.imdb.com/list/ls000096828/
sync_mode: sync
visible_home: range(12/01-12-31)
```
The scheduling options are:
| Name | Description | Format | Example |
| :--- | :--- | :--- | :--- |
| Hourly | Update this collection only when the script is run in that hour | hourly(Hour of Day) | hourly(17) |
| Daily | Update this collection once a day | daily | daily |
| Weekly | Update this collection once a week on the specified day | weekly(Day of Week) | weekly(sunday) |
| Monthly | Update this collection once a month on the specified day | monthly(Day of Month) | monthly(1) |
| Yearly | Update this collection once a year on the specified day | yearly(MM/DD) | yearly(01/30) |
| Range | Updates this collection whenever the date is within the range | range(MM/DD-MM/DD) | range(12/01-12/31) |
| Hourly | Update only when the script is run in that hour | hourly(Hour of Day) | `hourly(17)` |
| Daily | Update once a day | daily | `daily` |
| Weekly | Update once a week on the specified day | weekly(Day of Week) | `weekly(sunday)` |
| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` |
| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` |
| Range | Updates whenever the date is within the range | range(MM/DD-MM/DD) | `range(12/01-12/31)` |
| Never | Never updates | never | `never` |
* Using `daily` to schedule a collection is the default when `schedule` isn't specified
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Local Installation Page](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Local-Installation#time-to-run).
* You can have multiple scheduling options just make them a list or comma-separated values
* `daily` is the default when `schedule` isn't specified.
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Local Installation Page](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Installation#time-to-run).
* You can have multiple scheduling options just make them a list or comma-separated values.
* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled.

@ -0,0 +1,27 @@
All the following attributes serve various functions as how the collection/playlist functions inside of Plex Meta Manager.
| Name | Attribute | Description | Allowed Values | Works with Playlists |
| :--- | :--- | :--- | :--- | :---: |
| Collection/Playlist Name | `name` | Used to specify the name off the collection/playlist in Plex as different then the mapping name. | Any String | :heavy_check_mark: |
| 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) | :heavy_check_mark: |
| 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` | :heavy_check_mark: |
| 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 | :heavy_check_mark: |
| Collection Minimum | `collection_minimum` | Minimum items that must be found to add to a collection.<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | number greater then 0 | :heavy_check_mark: |
| Delete Below Minimum | `delete_below_minimum` | Deletes the collection if below the minimum.<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:** `true` or `false` | :heavy_check_mark: |
| Delete Not Scheduled | `delete_not_scheduled` | Deletes the collection if its skipped because its not scheduled.<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:** `true` or `false` | :heavy_check_mark: |
| 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` | :heavy_check_mark: |
| 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` | :x: |
| Server Pre-Roll | `server_preroll` | Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras | Any String | :heavy_check_mark: |
| 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` |
| Only Filter Missing | `only_filter_missing` | Collection Level `only_filter_missing` toggle<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | **boolean:** `true` or `false` | :heavy_check_mark: |
| Show Filtered Items | `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` | :heavy_check_mark: |
| Show Missing Items | `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` | :heavy_check_mark: |
| Save Missing Items | `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` | :heavy_check_mark: |
| Ignore IDs | `ignore_ids` | Collection level `ignore_ids` which is combined with the library and global `ignore_ids`<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | List or comma-separated String of TMDb/TVDb IDs | :heavy_check_mark: |
| Ignore IMDb IDs | `ignore_imdb_ids` | Collection level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`<br>**Default:** [settings library value](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Settings-Attributes) | List or comma-separated String of IMDb IDs | :heavy_check_mark: |
| Name Mapping | `name_mapping` | Used to specify the folder name in the [Image Assets Directory](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) | Folder Name In Assets Directory | :heavy_check_mark: |
| Test Mode | `test` | When running in Test Mode (`--run-tests` [option](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Installation#run-tests)) only collections with `test: true` will be run<br>**Default:** `false` | **boolean:** `true` or `false` | :heavy_check_mark: |
| Collection/Playlist Changes Webhooks | `collection_changes_webhooks` | Used to specify a collection changes webhook for just this collection | List of webhooks | :heavy_check_mark: |
* **Name Mapping:** If your collection name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `|`, `?`, `*` cannot be in the file path), but you want them in your collection name you can use the `name_mapping` attribute to specific this collection's name in the file system.
* **Server Pre-Roll:** You can run this with a [schedule](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Schedule-Detail) to change the pre-rolls automatically.

@ -9,7 +9,9 @@ settings:
cache_expiration: 60
asset_directory: config/assets
asset_folders: true
asset_depth: 0
create_asset_folders: false
dimensional_asset_rename: false
show_missing_season_assets: false
sync_mode: append
collection_minimum: 1
@ -20,6 +22,7 @@ settings:
only_filter_missing: false
show_unmanaged: true
show_filtered: false
show_options: false
show_missing: true
show_missing_assets: true
save_missing: true
@ -34,7 +37,9 @@ settings:
| [Cache Expiration](#cache) | `cache_expiration` | **integer**<br>**default: 60** | :heavy_check_mark: | :x: | :x: |
| [Image Asset Directory](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) | `asset_directory` | **list of paths**<br>**default: [Directory containing YAML config]/assets** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Image Asset Folders](#image-asset-folders) | `asset_folders` | **boolean:** true or false<br>**default: true** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Asset Depth](#asset-depth) | `asset_depth` | **integer**<br>**default: 0** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Create Asset Folders](#create-asset-folders) | `create_asset_folders` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Dimensional Asset Rename](#dimensional-asset-rename) | `dimensional_asset_rename` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Show Missing Season Assets](#show-missing-season-assets) | `show_missing_season_assets` | **boolean:** true or false<br>**default: false** | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Sync Mode](#sync-mode) | `sync_mode` | `append` or `sync`<br>**default: append** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Collection Minimum](#collection-minimum) | `collection_minimum` | **integer**<br>**default: 1** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
@ -53,7 +58,6 @@ settings:
| [Ignore IMDb IDs](#ignore-imdb-ids) | `ignore_imdb_ids` | List or comma-separated String of IMDb IDs | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## Cache
Will use a cached database for faster processing. The cache file is created in the same location as your config file.
You can change the number of `cache_expiration` to set the number of days before each cache mapping expires and has to be reloaded
@ -61,9 +65,15 @@ You can change the number of `cache_expiration` to set the number of days before
## Image Asset Folders
When searching [Image Asset Directories](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Image-Asset-Directory) search for named folders vs named files<br>i.e. `assets/Star Wars.png` vs `assets/Star Wars/poster.png`.
## Asset Depth
When using `asset_folders` this determines how many folder levels deep you want to search for an item.
## Create Asset Folders
When using the `assets_for_all` [Library Operation](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Operations-Attributes) folders will be created for each Item in your library for assets to be placed in.
## Dimensional Asset Rename
When using `asset_folders` this will scan the folder for image files and rename the first image found that has a height greater than its width to `poster.ext` as long as an asset poster was not found and the first image found that has a width greater than its height to `background.ext` as long as an asset background was not found.
## Show Missing Season Assets
When searching for assets for a show if a Season poster is found then this will display all other missing Season posters.

@ -1,4 +1,4 @@
Using Plex Meta Manager you can create Smart Collections in two different ways.
Smart Builders allow Plex Meta Manager to create Smart Collections in two different ways.
## Smart Label
@ -246,7 +246,7 @@ collections:
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.
If you specify TMDb Person ID's using the Detail `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:

@ -45,4 +45,6 @@ sonarr:
* The `quality_profile` and `language_profile` must be the exact name of the desired quality profile, including all spaces and capitalization.
* You can set most attributes per collection by using the [Sonarr Collection Detail](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details#sonarr-attributes)
* You can set most attributes per collection by using the [Sonarr Collection Detail](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details#sonarr-attributes)
![Sonarr Details](https://raw.githubusercontent.com/wiki/meisnate12/Plex-Meta-Manager/sonarr1.png)

@ -1,18 +1,22 @@
You can build a collection using StevenLu's Popular Movies list on [StevenLu.com](https://movies.stevenlu.com/) (StevenLu).
You can find items 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: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [StevenLu's Popular Movies List](#stevenlus-popular-movies-list) | `stevenlu_popular` | Finds every movie on [StevenLu's Popular Movies List](https://movies.stevenlu.com/). | :heavy_check_mark: | :x: | :heavy_check_mark: |
## StevenLu's Popular Movies List
Gets every movie on [StevenLu's Popular Movies List](https://movies.stevenlu.com/).
Finds every movie on [StevenLu's Popular Movies List](https://movies.stevenlu.com/).
The expected input is `true`.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
StevenLu's Popular Movies:
stevenlu_popular: true
collection_order: custom
sync_mode: sync
```

@ -1,46 +1,46 @@
You can build different collections using the features of [TheMovieDb.org](https://www.themoviedb.org/) (TMDb).
You can find items using the features of [TheMovieDb.org](https://www.themoviedb.org/) (TMDb).
## Standard TMDb Builders
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [TMDb Collection](#tmdb-collection) | `tmdb_collection` | Gets every movie in the TMDb collection | :heavy_check_mark: | :x: |
| [TMDb List](#tmdb-list) | `tmdb_list` | Gets every movie/show in the TMDb List | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Actor](#tmdb-actor) | `tmdb_actor` | Gets every movie/show in the TMDb Person's Actor Credits | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Crew](#tmdb-crew) | `tmdb_crew` | Gets every movie/show in the TMDb Person's Crew Credits | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Director](#tmdb-director) | `tmdb_director` | Gets every movie/show in the TMDb Person's Actor Credits | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Producer](#tmdb-producer) | `tmdb_producer` | Gets every movie/show in the TMDb Person's Producer Credits | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Writer](#tmdb-writer) | `tmdb_writer` | Gets every movie/show in the TMDb Person's Writer Credits | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Movie](#tmdb-movie) | `tmdb_movie` | Gets the movie specified | :heavy_check_mark: | :x: |
| [TMDb Show](#tmdb-show) | `tmdb_show` | Gets the show specified | :x: | :heavy_check_mark: |
| [TMDb Company](#tmdb-company) | `tmdb_company` | Gets every movie/show from the TMDb company's movie/show list | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Network](#tmdb-network) | `tmdb_network` | Gets every show from the TMDb network's show list | :x: | :heavy_check_mark: |
| [TMDb Keyword](#tmdb-keyword) | `tmdb_keyword` | Gets every movie/show from the TMDb keyword's movie/show list | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [TMDb Collection](#tmdb-collection) | `tmdb_collection` | Finds every item in the TMDb collection | :heavy_check_mark: | :x: | :x: |
| [TMDb List](#tmdb-list) | `tmdb_list` | Finds every item in the TMDb List | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Actor](#tmdb-actor) | `tmdb_actor` | Finds every item in the TMDb Person's Actor Credits | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Crew](#tmdb-crew) | `tmdb_crew` | Finds every item in the TMDb Person's Crew Credits | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Director](#tmdb-director) | `tmdb_director` | Finds every item in the TMDb Person's Actor Credits | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Producer](#tmdb-producer) | `tmdb_producer` | Finds every item in the TMDb Person's Producer Credits | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Writer](#tmdb-writer) | `tmdb_writer` | Finds every item in the TMDb Person's Writer Credits | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Movie](#tmdb-movie) | `tmdb_movie` | Finds the movie specified | :heavy_check_mark: | :x: | :x: |
| [TMDb Show](#tmdb-show) | `tmdb_show` | Finds the show specified | :x: | :heavy_check_mark: | :x: |
| [TMDb Company](#tmdb-company) | `tmdb_company` | Finds every item from the TMDb company's movie/show list | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Network](#tmdb-network) | `tmdb_network` | Finds every item from the TMDb network's show list | :x: | :heavy_check_mark: | :x: |
| [TMDb Keyword](#tmdb-keyword) | `tmdb_keyword` | Finds every item from the TMDb keyword's movie/show list | :heavy_check_mark: | :heavy_check_mark: | :x: |
## Standard TMDb Details Builders
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [TMDb Collection Details](#tmdb-collection) | `tmdb_collection_details` | Gets every movie in the TMDb collection and updates the collection with the summary, poster, and background from the TMDb collection | :heavy_check_mark: | :x: |
| [TMDb List Details](#tmdb-list) | `tmdb_list_details` | Gets every movie/show in the TMDb List and updates the collection with the description of the TMDb list | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Actor Details](#tmdb-actor) | `tmdb_actor_details` | Gets every movie/show in the TMDb Person's Actor Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Crew Details](#tmdb-crew) | `tmdb_crew_details` | Gets every movie/show in the TMDb Person's Crew Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Director Details](#tmdb-director) | `tmdb_director_details` | Gets every movie/show in the TMDb Person's Actor Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Producer Details](#tmdb-producer) | `tmdb_producer_details` | Gets every movie/show in the TMDb Person's Producer Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Writer Details](#tmdb-writer) | `tmdb_writer_details` | Gets every movie/show in the TMDb Person's Writer Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Movie Details](#tmdb-movie) | `tmdb_movie_details` | Gets the movie specified and updates the collection with the summary, poster, and background from the TMDb movie | :heavy_check_mark: | :x: |
| [TMDb Show Details](#tmdb-show) | `tmdb_show_details` | Gets the show specified and updates the collection with the summary, poster, and background from the TMDb show | :x: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [TMDb Collection Details](#tmdb-collection) | `tmdb_collection_details` | Finds every item in the TMDb collection and updates the collection with the summary, poster, and background from the TMDb collection | :heavy_check_mark: | :x: | :x: |
| [TMDb List Details](#tmdb-list) | `tmdb_list_details` | Finds every item in the TMDb List and updates the collection with the description of the TMDb list | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Actor Details](#tmdb-actor) | `tmdb_actor_details` | Finds every item in the TMDb Person's Actor Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Crew Details](#tmdb-crew) | `tmdb_crew_details` | Finds every item in the TMDb Person's Crew Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Director Details](#tmdb-director) | `tmdb_director_details` | Finds every item in the TMDb Person's Actor Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Producer Details](#tmdb-producer) | `tmdb_producer_details` | Finds every item in the TMDb Person's Producer Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Writer Details](#tmdb-writer) | `tmdb_writer_details` | Finds every item in the TMDb Person's Writer Credits with the biography and profile from the TMDb person | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [TMDb Movie Details](#tmdb-movie) | `tmdb_movie_details` | Finds the movie specified and updates the collection with the summary, poster, and background from the TMDb movie | :heavy_check_mark: | :x: | :x: |
| [TMDb Show Details](#tmdb-show) | `tmdb_show_details` | Finds the show specified and updates the collection with the summary, poster, and background from the TMDb show | :x: | :heavy_check_mark: | :x: |
## Other TMDb Builders
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [TMDb Popular](#tmdb-popular) | `tmdb_popular` | Gets the movies/shows in TMDb's [Popular Movies](https://www.themoviedb.org/movie)/[Popular Shows](https://www.themoviedb.org/tv) list | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Now Playing](#tmdb-now-playing) | `tmdb_now_playing` | Gets the movies in TMDb's [Now Playing](https://www.themoviedb.org/movie/now-playing) list | :heavy_check_mark: | :x: |
| [TMDb Top Rated](#tmdb-top-rated) | `tmdb_top_rated` | Gets the movies/shows in TMDb's [Top Rated Movies](https://www.themoviedb.org/movie/top-rated)/[Top Rated Shows](https://www.themoviedb.org/tv/top-rated) list | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Trending Daily](#tmdb-trending-daily) | `tmdb_trending_daily` | Gets the movies/shows in TMDb's Trending Daily list | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Trending Weekly](#tmdb-trending-weekly) | `tmdb_trending_weekly` | Gets the movies/shows in TMDb's Trending Weekly list | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Discover](#tmdb-discover) | `tmdb_discover` | Uses [TMDb's Discover Search](https://www.themoviedb.org/documentation/api/discover) to get every movie/show based on the [movie search parameters](https://developers.themoviedb.org/3/discover/movie-discover) or [show search parameters](https://developers.themoviedb.org/3/discover/tv-discover) provided | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [TMDb Popular](#tmdb-popular) | `tmdb_popular` | Finds the movies/shows in TMDb's [Popular Movies](https://www.themoviedb.org/movie)/[Popular Shows](https://www.themoviedb.org/tv) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Now Playing](#tmdb-now-playing) | `tmdb_now_playing` | Finds the movies in TMDb's [Now Playing](https://www.themoviedb.org/movie/now-playing) list | :heavy_check_mark: | :x: | :heavy_check_mark: |
| [TMDb Top Rated](#tmdb-top-rated) | `tmdb_top_rated` | Finds the movies/shows in TMDb's [Top Rated Movies](https://www.themoviedb.org/movie/top-rated)/[Top Rated Shows](https://www.themoviedb.org/tv/top-rated) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Trending Daily](#tmdb-trending-daily) | `tmdb_trending_daily` | Finds the movies/shows in TMDb's Trending Daily list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Trending Weekly](#tmdb-trending-weekly) | `tmdb_trending_weekly` | Finds the movies/shows in TMDb's Trending Weekly list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TMDb Discover](#tmdb-discover) | `tmdb_discover` | Uses [TMDb's Discover Search](https://www.themoviedb.org/documentation/api/discover) to find every movie/show based on the [movie search parameters](https://developers.themoviedb.org/3/discover/movie-discover) or [show search parameters](https://developers.themoviedb.org/3/discover/tv-discover) provided | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## Expected Input
@ -57,7 +57,7 @@ The builders below are expected to have the full URL to the item or the TMDb ID
* [TMDb Company](#tmdb-company)
* [TMDb Network](#tmdb-network)
The builders below are expected to have a single integer value of how many movies/shows to query. The `sync_mode: sync` option is also recommended for these builders since the lists they're based on are continuously updated.
The builders below are expected to have a single integer value of how many movies/shows to query.
* [TMDb Popular](#tmdb-popular)
* [TMDb Now Playing](#tmdb-now-playing)
* [TMDb Top Rated](#tmdb-top-rated)
@ -67,7 +67,7 @@ The builders below are expected to have a single integer value of how many movie
[TMDb Discover](#tmdb-discover)'s attributes are detailed [below](#tmdb-discover).
## TMDb Collection
Gets every movie in the TMDb collection.
Finds every item in the TMDb collection.
```yaml
collections:
@ -98,17 +98,23 @@ collections:
```
## TMDb List
Gets every movie/show in the TMDb List.
Finds every item in the TMDb List.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Top 50 Grossing Films of All Time (Worldwide):
tmdb_list: https://www.themoviedb.org/list/10
collection_order: custom
sync_mode: sync
```
```yaml
collections:
Top 50 Grossing Films of All Time (Worldwide):
tmdb_list: 10
collection_order: custom
sync_mode: sync
```
* You can update the collection details with the TMDb list's description by using `tmdb_list_details`.
@ -121,7 +127,7 @@ collections:
```
## TMDb Actor
Gets every movie/show in the TMDb Person's Actor Credits.
Finds every item in the TMDb Person's Actor Credits.
```yaml
collections:
@ -144,7 +150,7 @@ collections:
```
## TMDb Crew
Gets every movie/show in the TMDb Person's Crew Credits.
Finds every item in the TMDb Person's Crew Credits.
```yaml
collections:
@ -167,7 +173,7 @@ collections:
```
## TMDb Director
Gets every movie/show in the TMDb Person's Director Credits.
Finds every item in the TMDb Person's Director Credits.
```yaml
collections:
@ -190,7 +196,7 @@ collections:
```
## TMDb Producer
Gets every movie/show in the TMDb Person's Producer Credits.
Finds every item in the TMDb Person's Producer Credits.
```yaml
collections:
@ -213,7 +219,7 @@ collections:
```
## TMDb Writer
Gets every movie/show in the TMDb Person's Writer Credits.
Finds every item in the TMDb Person's Writer Credits.
```yaml
collections:
@ -236,7 +242,7 @@ collections:
```
## TMDb Movie
Gets the movie specified.
Finds the movie specified.
```yaml
collections:
@ -263,7 +269,7 @@ collections:
```
## TMDb Show
Gets the show specified.
Finds the show specified.
```yaml
collections:
@ -293,7 +299,7 @@ collections:
```
## TMDb Company
Gets every movie from the TMDb company's movie list.
Finds every movie from the TMDb company's movie list.
```yaml
collections:
@ -308,7 +314,7 @@ collections:
```
## TMDb Network
Gets every movie/show from the TMDb network's movie/show list.
Finds every item from the TMDb network's movie/show list.
```yaml
collections:
@ -323,7 +329,7 @@ collections:
```
## TMDb Keyword
Gets every movie/show from the TMDb keyword's movie/show list.
Finds every item from the TMDb keyword's movie/show list.
```yaml
collections:
@ -338,57 +344,74 @@ collections:
```
## TMDb Popular
Gets the movies/shows in TMDb's [Popular Movies](https://www.themoviedb.org/movie)/[Popular Shows](https://www.themoviedb.org/tv) list.
Finds the movies/shows in TMDb's [Popular Movies](https://www.themoviedb.org/movie)/[Popular Shows](https://www.themoviedb.org/tv) list.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
TMDb Popular:
tmdb_popular: 30
collection_order: custom
sync_mode: sync
```
## TMDb Now Playing
Gets the movies in TMDb's [Now Playing](https://www.themoviedb.org/movie/now-playing) list.
Finds the movies in TMDb's [Now Playing](https://www.themoviedb.org/movie/now-playing) list.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
TMDb Now Playing:
tmdb_now_playing: 30
collection_order: custom
sync_mode: sync
```
## TMDb Top Rated
Gets the movies/shows in TMDb's [Top Rated Movies](https://www.themoviedb.org/movie/top-rated)/[Top Rated Shows](https://www.themoviedb.org/tv/top-rated) list.
Finds the movies/shows in TMDb's [Top Rated Movies](https://www.themoviedb.org/movie/top-rated)/[Top Rated Shows](https://www.themoviedb.org/tv/top-rated) list.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
TMDb Top Rated:
tmdb_top_rated: 30
collection_order: custom
sync_mode: sync
```
## TMDb Trending Daily
Gets the movies/shows in TMDb's Trending Daily list.
Finds the movies/shows in TMDb's Trending Daily list.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
TMDb Daily Trending:
tmdb_trending_daily: 30
collection_order: custom
sync_mode: sync
```
## TMDb Trending Weekly
Gets the movies/shows in TMDb's Trending Weekly list.
Finds the movies/shows in TMDb's Trending Weekly list.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
TMDb Weekly Trending:
tmdb_trending_weekly: 30
collection_order: custom
sync_mode: sync
```
## TMDb Discover
Uses [TMDb's Discover Search](https://www.themoviedb.org/documentation/api/discover) to get every movie/show based on the [movie search parameters](https://developers.themoviedb.org/3/discover/movie-discover) or [show search parameters](https://developers.themoviedb.org/3/discover/tv-discover) provided
Uses [TMDb's Discover Search](https://www.themoviedb.org/documentation/api/discover) to find every movie/show based on the [movie search parameters](https://developers.themoviedb.org/3/discover/movie-discover) or [show search parameters](https://developers.themoviedb.org/3/discover/tv-discover) provided
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
| Type | Description |
| :--- | :--- |
@ -503,12 +526,16 @@ collections:
```yaml
collections:
Popular Movies:
collection_order: custom
sync_mode: sync
tmdb_discover:
sort_by: popularity.desc
```
```yaml
collections:
Highest Rated R Movies:
collection_order: custom
sync_mode: sync
tmdb_discover:
certification_country: US
certification: R
@ -517,6 +544,8 @@ collections:
```yaml
collections:
Most Popular Kids Movies:
collection_order: custom
sync_mode: sync
tmdb_discover:
certification_country: US
certification.lte: G
@ -525,6 +554,8 @@ collections:
```yaml
collections:
Highest Rated Movies From 2010:
collection_order: custom
sync_mode: sync
tmdb_discover:
primary_release_year: 2010
sort_by: vote_average.desc
@ -532,6 +563,8 @@ collections:
```yaml
collections:
Best Dramas From 2014:
collection_order: custom
sync_mode: sync
tmdb_discover:
with_genres: 18
primary_release_year: 2014
@ -540,6 +573,8 @@ collections:
```yaml
collections:
Highest Rated Science Fiction Movies with Tom Cruise:
collection_order: custom
sync_mode: sync
tmdb_discover:
with_genres: 878
with_cast: 500
@ -548,6 +583,8 @@ collections:
```yaml
collections:
Highest Grossing Comedy Movies with Will Ferrell:
collection_order: custom
sync_mode: sync
tmdb_discover:
with_genres: 35
with_cast: 23659
@ -556,6 +593,8 @@ collections:
```yaml
collections:
Top Rated Movies with Brad Pitt and Edward Norton:
collection_order: custom
sync_mode: sync
tmdb_discover:
with_people: 287,819
sort_by: vote_average.desc
@ -563,6 +602,8 @@ collections:
```yaml
collections:
Popular Movies with David Fincher and Rooney Mara:
collection_order: custom
sync_mode: sync
tmdb_discover:
with_people: 108916,7467
sort_by: popularity.desc
@ -570,6 +611,8 @@ collections:
```yaml
collections:
Top Rated Dramas:
collection_order: custom
sync_mode: sync
tmdb_discover:
with_genres: 18
sort_by: vote_average.desc
@ -578,6 +621,8 @@ collections:
```yaml
collections:
Highest Grossing R Movies with Liam Neeson:
collection_order: custom
sync_mode: sync
tmdb_discover:
certification_country: US
certification: R

@ -1,30 +1,36 @@
You can build different collections using the features of [TheTVDb.com](https://www.thetvdb.com/) (TVDb).
You can find items using the features of [TheTVDb.com](https://www.thetvdb.com/) (TVDb).
No configuration is required for these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [TVDb List](#tvdb-list) | `tvdb_list` | Gets every show in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) | :heavy_check_mark: | :heavy_check_mark: |
| [TVDb List Details](#tvdb-list) | `tvdb_list_details` | Gets every show in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) and updates the collection summary with the TVDb list description | :heavy_check_mark: | :heavy_check_mark: |
| [TVDb Show](#tvdb-show) | `tvdb_show` | Gets the series specified | :x: | :heavy_check_mark: |
| [TVDb Show Details](#tvdb-show) | `tvdb_show_details` | Gets the series specified and updates the collection with the summary, poster, and background from the TVDb series | :x: | :heavy_check_mark: |
| [TVDb Movie](#tvdb-movie) | `tvdb_movie` | Gets the movie specified | :heavy_check_mark: | :x: |
| [TVDb Movie Details](#tvdb-movie) | `tvdb_movie_details` | Gets the movie specified and updates the collection with the summary, poster, and background from the TVDb movie | :heavy_check_mark: | :x: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [TVDb List](#tvdb-list) | `tvdb_list` | Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TVDb List Details](#tvdb-list) | `tvdb_list_details` | Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom) and updates the collection summary with the TVDb list description | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [TVDb Show](#tvdb-show) | `tvdb_show` | Finds the series specified | :x: | :heavy_check_mark: | :x: |
| [TVDb Show Details](#tvdb-show) | `tvdb_show_details` | Finds the series specified and updates the collection with the summary, poster, and background from the TVDb series | :x: | :heavy_check_mark: | :x: |
| [TVDb Movie](#tvdb-movie) | `tvdb_movie` | Finds the movie specified | :heavy_check_mark: | :x: | :x: |
| [TVDb Movie Details](#tvdb-movie) | `tvdb_movie_details` | Finds the movie specified and updates the collection with the summary, poster, and background from the TVDb movie | :heavy_check_mark: | :x: | :x: |
## TVDb List
Gets every show in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom)
Finds every item in a [TVDb List](https://www.thetvdb.com/lists) or [TVDb Userlist](https://www.thetvdb.com/lists/custom)
The expected input is a TVDb List URL or TVDb Userlist URL. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Arrowverse:
tvdb_list: https://www.thetvdb.com/lists/arrowverse
collection_order: custom
sync_mode: sync
```
```yaml
collections:
Saved by the Bell:
tvdb_list: https://www.thetvdb.com/lists/6957
collection_order: custom
sync_mode: sync
```
* You can update the collection details with the TVDb list's description by using `tvdb_list_details`.
@ -34,10 +40,12 @@ collections:
collections:
Arrowverse:
tvdb_list_details: https://www.thetvdb.com/lists/arrowverse
collection_order: custom
sync_mode: sync
```
## TVDb Show
Gets the show specified
Finds the show specified
The expected input is a TVDb Series ID or TVDb Series URL. Multiple values are supported as either a list or a comma-separated string.
@ -65,7 +73,7 @@ collections:
```
## TVDb Movie
Gets the movie specified
Finds the movie specified
The expected input is a TVDb Movie ID or TVDb Movie URL. Multiple values are supported as either a list or a comma-separated string.

@ -1,13 +1,13 @@
You can build different collections using the features of [Tautulli](https://tautulli.com/).
You can find items in your Plex using the features of [Tautulli](https://tautulli.com/).
[Configuring Tautulli](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Tautulli-Attributes) in the config is required for any of these builders.
It has watch analytics that can show the most watched or most popular Movies/Shows in each Library.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [Tautulli Popular](#tautulli-popularwatched) | `tautulli_popular` | Gets the Tautulli Most Popular List | :heavy_check_mark: | :heavy_check_mark: |
| [Tautulli Watched](#tautulli-popularwatched) | `tautulli_watched` | Gets the Tautulli Most Watched List | :heavy_check_mark: | :heavy_check_mark: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Custom Sort | Works with Playlists |
| :--- | :--- | :--- | :---: | :---: | :---: | :---: |
| [Tautulli Popular](#tautulli-popularwatched) | `tautulli_popular` | Gets the Tautulli Most Popular List | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Tautulli Watched](#tautulli-popularwatched) | `tautulli_watched` | Gets the Tautulli Most Watched List | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
## Tautulli Popular/Watched
Both Tautulli Popular and Tautulli Watched have the same sub-attributes detailed below.
@ -25,10 +25,13 @@ In order to get around that, you can use the `list_buffer` attribute that defaul
So if your collection doesn't have as many movies/shows as your `list_size` attribute increase the number in the `list_buffer` attribute.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Most Popular Movies (30 Days):
sync_mode: sync
collection_order: custom
tautulli_popular:
list_days: 30
list_size: 10
@ -37,6 +40,7 @@ collections:
collections:
Most Watched Movies (30 Days):
sync_mode: sync
collection_order: custom
tautulli_watched:
list_days: 30
list_size: 10
@ -57,3 +61,14 @@ collections:
summary: Movies Popular on Plex
collection_order: alpha
```
```yaml
playlists:
Plex Popular:
libraries: Movies
tautulli_popular:
list_days: 30
list_size: 20
list_buffer: 20
sync_mode: sync
summary: Movies Popular on Plex
```

@ -1,8 +1,8 @@
The script can use templates created by the user to build similar collections with ease.
The script can use templates created by the user to build similar collections/playlists with ease.
Each template is defined by the mapping name which becomes the name of the template.
Inside a template, you can give it all the [Collection Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Builders), [Collection Details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Details), and [Collection Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Collection-Filters) attributes that you can give collections expect `template`.
Inside a template, you can give it all the [Builders](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Builders), [Details](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Details), and [Filters](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Filters) attributes that you can give collections/playlists expect `template`.
In any attribute, you can specify template variables that will be changed when calling the template. In the text just replace the text you want to be changed with the template variable name surrounded by `<<` and `>>`. For example, I can use the person template variable like so `tmdb_person: <<person>>`. The template variable name can be whatever you want but it must match when calling the template. To use the collection mapping name as a variable use `<<collection_name>>`.
@ -26,11 +26,11 @@ collections:
person: 73457
```
There are three attributes unique to `templates`, `default`, `optional`, and `move_collection_prefix`.
There are three attributes unique to `templates`, `default`, `optional`, and `move_prefix`.
* `default` can set default values for template variables to be used if they're not specified in the call.
* `optional` can specify variables that if not specified on the template call will cause any attribute using one of those variables to be ignored in the template.
* `move_collection_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection name for sorting.
i.e. If you have `move_collection_prefix: The` and a collection is called `The Avengers` then `<<collection_name>>` is replaced with `Avengers, The` instead of `The Avengers` for that collection.
* `move_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection/playlist name for sorting.
i.e. If you have `move_prefix: The` and a collection is called `The Avengers` then `<<collection_name>>` is replaced with `Avengers, The` instead of `The Avengers` for that collection.
Here's an example IMDB Genre template and two different ways to call it.
```yaml

@ -38,4 +38,4 @@ To authenticate Trakt the first time, you need run the container with the `-it`
#### OAuth Flow using unRAID Docker
Directions on how to authenticate Trakt on unRAID can be found on the [unRAID Installation](https://github.com/meisnate12/Plex-Meta-Manager/wiki/unRAID-Installation#advanced-installation-authenticating-trakt-or-myanimelist) page.
Directions on how to authenticate Trakt on unRAID can be found on the [unRAID Installation](https://github.com/meisnate12/Plex-Meta-Manager/wiki/unRAID-Walkthrough#advanced-installation-authenticating-trakt-or-myanimelist) page.

@ -1,48 +1,53 @@
You can build different collections using the features of [Trakt.tv](https://trakt.tv/) (Trakt).
You can find items using the features of [Trakt.tv](https://trakt.tv/) (Trakt).
[Configuring Trakt](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Trakt-Attributes) in the config is required for any of these builders.
| Name | Attribute | Description | Works with Movies | Works with Shows |
| :--- | :--- | :--- | :---: | :---: |
| [Trakt List](#trakt-list) | `trakt_list` | Gets every movie/show in the Trakt List | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt List Details](#trakt-list) | `trakt_list_details` | Gets every movie/show in the Trakt List and updates the collection summary with the list description | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt User Watchlist](#trakt-user-watchlist) | `trakt_watchlist` | Gets every movie/show in a Users Watchlist | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt User Collection](#trakt-user-collection) | `trakt_collection` | Gets every movie/show in a Users Collection | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Trending](#trakt-trending) | `trakt_trending` | Gets the movies/shows in Trakt's Trending [Movies](https://trakt.tv/movies/trending)/[Shows](https://trakt.tv/shows/trending) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Popular](#trakt-popular) | `trakt_popular` | Gets the movies/shows in Trakt's Popular [Movies](https://trakt.tv/movies/popular)/[Shows](https://trakt.tv/shows/popular) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Daily](#trakt-recommended) | `trakt_recommended_daily` | Gets the movies/shows in Trakt's Daily Recommended [Movies](https://trakt.tv/movies/recommended/daily)/[Shows](https://trakt.tv/shows/recommended/daily) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Weekly](#trakt-recommended) | `trakt_recommended_weekly` | Gets the movies/shows in Trakt's Weekly Recommended [Movies](https://trakt.tv/movies/recommended/weekly)/[Shows](https://trakt.tv/shows/recommended/weekly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Monthly](#trakt-recommended) | `trakt_recommended_monthly` | Gets the movies/shows in Trakt's Monthly Recommended [Movies](https://trakt.tv/movies/recommended/monthly)/[Shows](https://trakt.tv/shows/recommended/monthly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Yearly](#trakt-recommended) | `trakt_recommended_yearly` | Gets the movies/shows in Trakt's Yearly Recommended [Movies](https://trakt.tv/movies/recommended/yearly)/[Shows](https://trakt.tv/shows/recommended/yearly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended All-Time](#trakt-recommended) | `trakt_recommended_all` | Gets the movies/shows in Trakt's All-Time Recommended [Movies](https://trakt.tv/movies/recommended/all)/[Shows](https://trakt.tv/shows/recommended/all) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Daily](#trakt-watched) | `trakt_watched_daily` | Gets the movies/shows in Trakt's Daily Watched [Movies](https://trakt.tv/movies/watched/daily)/[Shows](https://trakt.tv/shows/watched/daily) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Weekly](#trakt-watched) | `trakt_watched_weekly` | Gets the movies/shows in Trakt's Weekly Watched [Movies](https://trakt.tv/movies/watched/weekly)/[Shows](https://trakt.tv/shows/watched/weekly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Monthly](#trakt-watched) | `trakt_watched_monthly` | Gets the movies/shows in Trakt's Monthly Watched [Movies](https://trakt.tv/movies/watched/monthly)/[Shows](https://trakt.tv/shows/watched/monthly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Yearly](#trakt-watched) | `trakt_watched_yearly` | Gets the movies/shows in Trakt's Yearly Watched [Movies](https://trakt.tv/movies/watched/yearly)/[Shows](https://trakt.tv/shows/watched/yearly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched All-Time](#trakt-watched) | `trakt_watched_all` | Gets the movies/shows in Trakt's All-Time Watched [Movies](https://trakt.tv/movies/watched/all)/[Shows](https://trakt.tv/shows/watched/all) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Daily](#trakt-collected) | `trakt_collected_daily` | Gets the movies/shows in Trakt's Daily Collected [Movies](https://trakt.tv/movies/collected/daily)/[Shows](https://trakt.tv/shows/collected/daily) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Weekly](#trakt-collected) | `trakt_collected_weekly` | Gets the movies/shows in Trakt's Weekly Collected [Movies](https://trakt.tv/movies/collected/weekly)/[Shows](https://trakt.tv/shows/collected/weekly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Monthly](#trakt-collected) | `trakt_collected_monthly` | Gets the movies/shows in Trakt's Monthly Collected [Movies](https://trakt.tv/movies/collected/monthly)/[Shows](https://trakt.tv/shows/collected/monthly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Yearly](#trakt-collected) | `trakt_collected_yearly` | Gets the movies/shows in Trakt's Yearly Collected [Movies](https://trakt.tv/movies/collected/yearly)/[Shows](https://trakt.tv/shows/collected/yearly) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected All-Time](#trakt-collected) | `trakt_collected_all` | Gets the movies/shows in Trakt's All-Time Collected [Movies](https://trakt.tv/movies/collected/all)/[Shows](https://trakt.tv/shows/collected/all) list | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Box Office](#trakt-box-office) | `trakt_boxoffice` | Gets the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/boxoffice) list | :heavy_check_mark: | :x: |
| Name | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
| :--- | :--- | :--- | :---: | :---: | :---: |
| [Trakt List](#trakt-list) | `trakt_list` | Finds every item in the Trakt List | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt List Details](#trakt-list) | `trakt_list_details` | Finds every item in the Trakt List and updates the collection summary with the list description | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt User Watchlist](#trakt-user-watchlist) | `trakt_watchlist` | Finds every item in a Users Watchlist | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt User Collection](#trakt-user-collection) | `trakt_collection` | Finds every item in a Users Collection | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Trending](#trakt-trending) | `trakt_trending` | Finds the movies/shows in Trakt's Trending [Movies](https://trakt.tv/movies/trending)/[Shows](https://trakt.tv/shows/trending) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Popular](#trakt-popular) | `trakt_popular` | Finds the movies/shows in Trakt's Popular [Movies](https://trakt.tv/movies/popular)/[Shows](https://trakt.tv/shows/popular) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Daily](#trakt-recommended) | `trakt_recommended_daily` | Finds the movies/shows in Trakt's Daily Recommended [Movies](https://trakt.tv/movies/recommended/daily)/[Shows](https://trakt.tv/shows/recommended/daily) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Weekly](#trakt-recommended) | `trakt_recommended_weekly` | Finds the movies/shows in Trakt's Weekly Recommended [Movies](https://trakt.tv/movies/recommended/weekly)/[Shows](https://trakt.tv/shows/recommended/weekly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Monthly](#trakt-recommended) | `trakt_recommended_monthly` | Finds the movies/shows in Trakt's Monthly Recommended [Movies](https://trakt.tv/movies/recommended/monthly)/[Shows](https://trakt.tv/shows/recommended/monthly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended Yearly](#trakt-recommended) | `trakt_recommended_yearly` | Finds the movies/shows in Trakt's Yearly Recommended [Movies](https://trakt.tv/movies/recommended/yearly)/[Shows](https://trakt.tv/shows/recommended/yearly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Recommended All-Time](#trakt-recommended) | `trakt_recommended_all` | Finds the movies/shows in Trakt's All-Time Recommended [Movies](https://trakt.tv/movies/recommended/all)/[Shows](https://trakt.tv/shows/recommended/all) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Daily](#trakt-watched) | `trakt_watched_daily` | Finds the movies/shows in Trakt's Daily Watched [Movies](https://trakt.tv/movies/watched/daily)/[Shows](https://trakt.tv/shows/watched/daily) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Weekly](#trakt-watched) | `trakt_watched_weekly` | Finds the movies/shows in Trakt's Weekly Watched [Movies](https://trakt.tv/movies/watched/weekly)/[Shows](https://trakt.tv/shows/watched/weekly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Monthly](#trakt-watched) | `trakt_watched_monthly` | Finds the movies/shows in Trakt's Monthly Watched [Movies](https://trakt.tv/movies/watched/monthly)/[Shows](https://trakt.tv/shows/watched/monthly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched Yearly](#trakt-watched) | `trakt_watched_yearly` | Finds the movies/shows in Trakt's Yearly Watched [Movies](https://trakt.tv/movies/watched/yearly)/[Shows](https://trakt.tv/shows/watched/yearly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Watched All-Time](#trakt-watched) | `trakt_watched_all` | Finds the movies/shows in Trakt's All-Time Watched [Movies](https://trakt.tv/movies/watched/all)/[Shows](https://trakt.tv/shows/watched/all) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Daily](#trakt-collected) | `trakt_collected_daily` | Finds the movies/shows in Trakt's Daily Collected [Movies](https://trakt.tv/movies/collected/daily)/[Shows](https://trakt.tv/shows/collected/daily) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Weekly](#trakt-collected) | `trakt_collected_weekly` | Finds the movies/shows in Trakt's Weekly Collected [Movies](https://trakt.tv/movies/collected/weekly)/[Shows](https://trakt.tv/shows/collected/weekly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Monthly](#trakt-collected) | `trakt_collected_monthly` | Finds the movies/shows in Trakt's Monthly Collected [Movies](https://trakt.tv/movies/collected/monthly)/[Shows](https://trakt.tv/shows/collected/monthly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected Yearly](#trakt-collected) | `trakt_collected_yearly` | Finds the movies/shows in Trakt's Yearly Collected [Movies](https://trakt.tv/movies/collected/yearly)/[Shows](https://trakt.tv/shows/collected/yearly) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Collected All-Time](#trakt-collected) | `trakt_collected_all` | Finds the movies/shows in Trakt's All-Time Collected [Movies](https://trakt.tv/movies/collected/all)/[Shows](https://trakt.tv/shows/collected/all) list | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Trakt Box Office](#trakt-box-office) | `trakt_boxoffice` | Finds the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/boxoffice) list | :heavy_check_mark: | :x: | :heavy_check_mark: |
## Trakt List
Gets every movie/show in the Trakt List.
Finds every item in the Trakt List.
The expected input is a Trakt List URL. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Christmas:
trakt_list:
- https://trakt.tv/users/movistapp/lists/christmas-movies
- https://trakt.tv/users/2borno2b/lists/christmas-movies-extravanganza
sync_mode: sync
```
```yaml
collections:
Reddit Top 250:
trakt_list: https://trakt.tv/users/jay-greene/lists/reddit-top-250-2019-edition
collection_order: custom
sync_mode: sync
```
* You can update the collection details with the Trakt List's description by using `trakt_list_details`.
@ -52,30 +57,31 @@ collections:
collections:
Reddit Top 250:
trakt_list_details: https://trakt.tv/users/jay-greene/lists/reddit-top-250-2019-edition
collection_order: custom
sync_mode: sync
```
## Trakt User Watchlist
Gets every movie/show in a Users Watchlist.
Finds every item in a Users Watchlist.
The expected input is a user's Trakt Username or `me`. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` option is also recommended since the Trakt Watchlists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Watchlist:
trakt_watchlist:
- me
- traktbuddy
trakt_watchlist: me
collection_order: custom
sync_mode: sync
```
## Trakt User Collection
Gets every movie/show in a Users Collection.
Finds every item in a Users Collection.
The expected input is a user's Trakt Username or `me`. Multiple values are supported as either a list or a comma-separated string.
The `sync_mode: sync` option is also recommended since the Trakt Watchlists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
@ -87,35 +93,37 @@ collections:
```
## Trakt Trending
Gets the movies/shows in Trakt's Trending [Movies](https://trakt.tv/movies/trending)/[Shows](https://trakt.tv/shows/trending) list.
Finds the movies/shows in Trakt's Trending [Movies](https://trakt.tv/movies/trending)/[Shows](https://trakt.tv/shows/trending) list.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the Trakt Trending lists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Trending:
trakt_trending: 30
collection_order: custom
sync_mode: sync
```
## Trakt Popular
Gets the movies/shows in Trakt's Popular [Movies](https://trakt.tv/movies/popular)/[Shows](https://trakt.tv/shows/popular) list.
Finds the movies/shows in Trakt's Popular [Movies](https://trakt.tv/movies/popular)/[Shows](https://trakt.tv/shows/popular) list.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the Trakt Popular lists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Popular:
trakt_popular: 30
collection_order: custom
sync_mode: sync
```
## Trakt Recommended
Gets the movies/shows in Trakt's Recommended lists.
Finds the movies/shows in Trakt's Recommended lists.
| Builder | Period | Movie List | Show List |
| :--- | :---: | :---: | :---: |
@ -127,17 +135,18 @@ Gets the movies/shows in Trakt's Recommended lists.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the Trakt Recommended lists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Recommended:
trakt_recommended_weekly: 30
collection_order: custom
sync_mode: sync
```
## Trakt Watched
Gets the movies/shows in Trakt's Watched lists.
Finds the movies/shows in Trakt's Watched lists.
| Builder | Period | Movie List | Show List |
| :--- | :---: | :---: | :---: |
@ -149,17 +158,18 @@ Gets the movies/shows in Trakt's Watched lists.
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the Trakt Watched lists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Watched:
trakt_watched_weekly: 30
collection_order: custom
sync_mode: sync
```
## Trakt Collected
Gets the movies/shows in Trakt's Collected [Movies](https://trakt.tv/movies/collected/weekly)/[Shows](https://trakt.tv/shows/collected/weekly) list.
Finds the movies/shows in Trakt's Collected [Movies](https://trakt.tv/movies/collected/weekly)/[Shows](https://trakt.tv/shows/collected/weekly) list.
| Builder | Period | Movie List | Show List |
| :--- | :---: | :---: | :---: |
@ -171,25 +181,27 @@ Gets the movies/shows in Trakt's Collected [Movies](https://trakt.tv/movies/coll
The expected input is a single integer value of how many movies/shows to query.
The `sync_mode: sync` option is also recommended since the Trakt Collected lists are continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Collected:
trakt_collected_weekly: 30
collection_order: custom
sync_mode: sync
```
## Trakt Box Office
Gets the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/boxoffice) list.
Finds the 10 movies in Trakt's Top Box Office [Movies](https://trakt.tv/movies/boxoffice) list.
The expected input is true.
The `sync_mode: sync` option is also recommended since the Trakt Box Office list is continuously updated.
The `sync_mode: sync` and `collection_order: custom` Details are recommended since the lists are continuously updated and in a specific order.
```yaml
collections:
Trakt Collected:
trakt_boxoffice: true
collection_order: custom
sync_mode: sync
```

@ -9,7 +9,7 @@ webhooks:
error: https://www.myspecialdomain.com/pmm
run_start:
run_end:
collection_changes:
changes:
```
| Name | Attribute | Global | Library | Collection |
@ -17,7 +17,7 @@ webhooks:
| [Error](#error-notifications) | `error` | :heavy_check_mark: | :heavy_check_mark: | :x: |
| [Run Start](#run-start-notifications) | `run_start` | :heavy_check_mark: | :x: | :x: |
| [Run End](#run-end-notifications) | `run_end` | :heavy_check_mark: | :x: | :x: |
| [Collection Changes](#collection-notifications) | `collection_changes` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| [Collection/Playlist Changes](#changes-notifications) | `changes` | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
* Each Attribute can be either a webhook url as a string or a comma-separated list of webhooks urls.
* To send notifications to [Notifiarr](https://github.com/meisnate12/Plex-Meta-Manager/wiki/Notifiarr-Attributes) just add `notifiarr` to a webhook instead of the webhook url.
@ -58,6 +58,18 @@ The Error notification will be sent whenever an error occurs. The payload that i
}
```
#### Playlist JSON Payload
```yaml
{
"error": str, // Error Message
"critical": bool, // Critical Error
"server_name": str, // Server Name
"library_name": str, // Library Name
"playlist": str // Playlist Name
}
```
## Run Start Notifications
The Run Start notification will be sent at the beginning of every run.
@ -81,19 +93,19 @@ The Run End notification will be sent at the end of every run with statistics.
"start_time": str, // Time Run started Format "YY-mm-dd HH:MM:SS"
"end_time": str, // Time Run ended Format "YY-mm-dd HH:MM:SS"
"run_time": str, // Time Run took to complete Format "HH:MM"
"collections_created": int, // Number of Collections Created
"collections_modified": int, // Number of Collections Modified
"collections_deleted": int, // Number of Collections Removed
"items_added": int, // Number of Items added across all Collections
"items_removed": int, // Number of Items removed across all Collections
"collections_created": int, // Number of Collections/Playlists Created
"collections_modified": int, // Number of Collections/Playlists Modified
"collections_deleted": int, // Number of Collections/Playlists Removed
"items_added": int, // Number of Items added across all Collections/Playlists
"items_removed": int, // Number of Items removed across all Collections/Playlists
"added_to_radarr": int, // Number of Items added to Radarr
"added_to_sonarr": int // Number of Items added to Sonarr
}
```
## Collection Notifications
## Changes Notifications
The Collection Notification will be sent after each collection containing the following payload if the collection has been created, has new items, or has had items removed.
The Changes Notification will be sent after each collection/playlist containing the following payload if the collection/playlist has been created, has new items, or has had items removed.
#### JSON Payload
@ -101,21 +113,23 @@ The Collection Notification will be sent after each collection containing the fo
{
"server_name": str, // Server Name
"library_name": str, // Library Name
"type": str, // Will be either "movie" or "show"
"collection": str, // Collection Name
"created": bool, // Was the Collection Created on this run
"deleted": bool, // Was the Collection Deleted on this run
"poster": str, // Base64 Encoded Collection Poster
"background": str, // Base64 Encoded Collection Background
"collection": str, // Collection Name only in payload for a collection
"playlist": str, // Playlist Name only in payload for a playlist
"created": bool, // Was the Collection/Playlist Created on this run
"deleted": bool, // Was the Collection/Playlist Deleted on this run
"poster": str, // Base64 Encoded Collection/Playlist Poster if no poster_url is found
"poster_url": str, // Collection/Playlist Poster URL if avaiable
"background": str, // Base64 Encoded Collection/Playlist Background if no poster_url is found
"background_url": str, // Collection/Playlist Background URL if avaiable
"additions": [
"title": str, // Title of addition
"id": int // TMDB/TVDB ID of addition
"tmdb_id": int // TMDb ID of addition only appears if it's a Movie
"tvdb_id": int // TVDb ID of addition only appears if it's a Show
],
"removals": [
"title": str, // Title of removal
"id": int // TMDB/TVDB ID of removal
"tmdb_id": int // TMDb ID of removal only appears if it's a Movie
"tvdb_id": int // TVDb ID of removal only appears if it's a Show
],
}
```
* TMDb IDs are sent if the `type` is `movie` and TVDb IDs are sent if the type is `show`

@ -1,12 +1,12 @@
- [Home](Home)
- [Local Installation](Local-Installation)
- [Local Walkthrough](Walkthrough-Local)
- [Docker Installation](Docker-Installation)
- [Docker Walkthrough](Walkthrough-Docker)
- [unRAID Installation](unRAID-Installation)
- [Installation](Installation)
- [Local Walkthrough](Local-Walkthrough)
- [Docker Walkthrough](Docker-Walkthrough)
- [unRAID Walkthrough](unRAID-Walkthrough)
- [Configuration File](Configuration-File)
- [Libraries Attributes](Libraries-Attributes)
- [Operations Attributes](Operations-Attributes)
- [Playlist Files Attributes](Playlist-Files-Attributes)
- [Settings Attributes](Settings-Attributes)
- [Image Asset Directory](Image-Asset-Directory)
- [Webhooks Attributes](Webhooks-Attributes)
@ -20,29 +20,31 @@
- [Sonarr Attributes](Sonarr-Attributes)
- [Trakt Attributes](Trakt-Attributes)
- [MyAnimeList Attributes](MyAnimeList-Attributes)
- [Metadata File](Metadata-File)
- [Metadata and Playlist File](Metadata-and-Playlist-File)
- [Metadata Attributes](Metadata-Attributes)
- [Seasons Attributes](Seasons-Attributes)
- [Episodes Attributes](Episodes-Attributes)
- [Template Attributes](Template-Attributes)
- [Collection Attributes](Collection-Attributes)
- [Collection Builders](Collection-Builders)
- [Plex Builders](Plex-Builders)
- [Smart Builders](Smart-Builders)
- [TMDb Builders](TMDb-Builders)
- [TVDb Builders](TVDb-Builders)
- [IMDb Builders](IMDb-Builders)
- [Trakt Builders](Trakt-Builders)
- [Tautulli Builders](Tautulli-Builders)
- [Letterboxd Builders](Letterboxd-Builders)
- [ICheckMovies Builders](ICheckMovies-Builders)
- [FlixPatrol Builders](FlixPatrol-Builders)
- [StevenLu Builders](StevenLu-Builders)
- [AniDB Builders](AniDB-Builders)
- [AniList Builders](AniList-Builders)
- [MyAnimeList Builders](MyAnimeList-Builders)
- [Collection Details](Collection-Details)
- [Schedule Detail](Schedule-Detail)
- [Image Overlay Detail](Image-Overlay-Detail)
- [Collection Filters](Collection-Filters)
- Builders
- [Plex Builders](Plex-Builders)
- [Smart Builders](Smart-Builders)
- [TMDb Builders](TMDb-Builders)
- [TVDb Builders](TVDb-Builders)
- [IMDb Builders](IMDb-Builders)
- [Trakt Builders](Trakt-Builders)
- [Tautulli Builders](Tautulli-Builders)
- [Letterboxd Builders](Letterboxd-Builders)
- [ICheckMovies Builders](ICheckMovies-Builders)
- [FlixPatrol Builders](FlixPatrol-Builders)
- [StevenLu Builders](StevenLu-Builders)
- [AniDB Builders](AniDB-Builders)
- [AniList Builders](AniList-Builders)
- [MyAnimeList Builders](MyAnimeList-Builders)
- Details
- [Setting Details](Setting-Details)
- [Schedule Detail](Schedule-Detail)
- [Image Overlay Detail](Image-Overlay-Detail)
- [Metadata Details](Metadata-Details)
- [Arr Details](Arr-Details)
- [Filters](Filters)
- [Acknowledgements](Acknowledgements)

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Loading…
Cancel
Save