From f51361399d61c1e48cde696e654a68caf92f4ace Mon Sep 17 00:00:00 2001
From: YozoraXCII <96386153+YozoraXCII@users.noreply.github.com>
Date: Wed, 15 Nov 2023 11:44:43 +0000
Subject: [PATCH] various doc admonitions, table amendments, fix dynamic
collections nav
---
docs/builders/anilist.md | 4 +-
docs/builders/filters.md | 29 +-
docs/builders/smart.md | 4 +-
docs/config/anidb.md | 42 +-
docs/config/libraries.md | 18 +-
docs/config/mdblist.md | 6 +-
docs/config/myanimelist.md | 76 +-
docs/config/omdb.md | 6 +-
docs/config/operations.md | 11 +-
docs/config/plex.md | 10 +-
docs/config/radarr.md | 11 +-
docs/config/settings.md | 646 ++---
docs/config/sonarr.md | 10 +-
docs/config/tautulli.md | 6 +-
docs/config/trakt.md | 22 +-
docs/defaults/chart/anilist.md | 4 +-
docs/defaults/chart/basic.md | 6 +-
docs/defaults/chart/flixpatrol.md | 4 +-
docs/defaults/chart/myanimelist.md | 4 +-
docs/defaults/chart/other.md | 2 +-
docs/defaults/chart/tautulli.md | 8 +-
docs/defaults/chart/tmdb.md | 4 +-
docs/defaults/chart/trakt.md | 4 +-
docs/defaults/collection_list.md | 1 +
docs/defaults/overlay_list.md | 1 +
docs/defaults/overlays/flixpatrol.md | 6 +-
docs/metadata/dynamic.md | 2246 +-----------------
docs/metadata/dynamic_types.md | 2243 +++++++++++++++++
docs/metadata/metadata.md | 2 +-
docs/metadata/overlay.md | 6 +-
docs/metadata/playlist.md | 6 +-
docs/metadata/templates.md | 2 +-
docs/pmm/essentials/scripts/overlay-reset.md | 2 +-
mkdocs.yml | 71 +-
34 files changed, 2704 insertions(+), 2819 deletions(-)
create mode 100644 docs/metadata/dynamic_types.md
diff --git a/docs/builders/anilist.md b/docs/builders/anilist.md
index e3ca3694..d4b4a3f3 100644
--- a/docs/builders/anilist.md
+++ b/docs/builders/anilist.md
@@ -111,8 +111,8 @@ The `sync_mode: sync` and `collection_order: custom` Details are recommended sin
|:------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `username` | **Description:** A user's AniList Username |
| `list_name` | **Description:** A user's AniList List Name |
-| `score.gt`1 | **Description:** Only return items that have a score greater then the given number.
**Values:** `0.0`-`10.0` |
-| `score.gte`1 | **Description:** Only return items that have a score greater then or equal to the given number.
**Values:** `0.0`-`10.0` |
+| `score.gt`1 | **Description:** Only return items that have a score greater than the given number.
**Values:** `0.0`-`10.0` |
+| `score.gte`1 | **Description:** Only return items that have a score greater than or equal to the given number.
**Values:** `0.0`-`10.0` |
| `score.lt`1 | **Description:** Only return items that have a score less then the given number.
**Values:** `0.0`-`10.0` |
| `score.lte`1 | **Description:** Only return items that have a score less then or equal to the given number.
**Values:** `0.0`-`10.0` |
| `sort_by` | **Description:** Sort Order to return
**Default:** `score`
**Values:**
`score` | Sort by User Score |
`popularity` | Sort by Popularity |
`status` | Sort by Status |
`progress` | Sort by Progress |
`last_updated` | Sort by Last Updated |
`last_added` | Sort by Last Added |
`start_date` | Sort by Start Date |
`completed_date` | Sort by Completed Date |
|
diff --git a/docs/builders/filters.md b/docs/builders/filters.md
index 7329c040..61423254 100644
--- a/docs/builders/filters.md
+++ b/docs/builders/filters.md
@@ -5,6 +5,7 @@ Filters allow for you to filter every item added to the collection/overlay/playl
## Using Filters
Filters cannot do anything alone they require the use of at least one [Builder](../metadata/builders.md) to function.
+
You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match.
```yaml
@@ -31,19 +32,9 @@ All filter options are listed below. To display items filtered out add `show_fil
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 items using [Plex Search](plex.md#plex-search) or another [Builder](../metadata/builders.md) if possible.**
-[definition.md](details%2Fdefinition.md)
-## Table Annotations
-
-**1** Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition.md).
-
-**2** Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers.
-
-**3** You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2`
-
-**4** The actual numbers are pulled from the [PMM-Mediastingers](https://github.com/meisnate12/PMM-Mediastingers) Repo.
-
-**5** Also is a Tag Filter and can use all of those modifiers.
+???+ warning
+
+ Filters can be very slow, particularly on larger libraries. Try to build or narrow your items using a [Smart Label Collection](smart.md#smart-label), [Plex Search](plex.md#plex-search) or another [Builder](../metadata/builders.md) if possible.
## String Filters
@@ -218,6 +209,18 @@ Special Filters each have their own set of rules for how they're used.
| `tmdb_type`**[2](#table-annotations)**
`tmdb_type.not`**[2](#table-annotations)** | Uses TMDb Type to match
**Values:** `documentary`, `news`, `production`, `miniseries`, `reality`, `scripted`, `talk_show`, `video` | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `imdb_keyword`**[2](#table-annotations)****[5](#table-annotations)** | Uses the keywords from IMDb to match
`keywords`: list of keywords to match
`minimum_votes`: minimum number of votes keywords must have
`minimum_relevant`: minimum number of relevant votes keywords must have
`minimum_percentage`: minimum percentage of relevant votes keywords must have | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
+## Table Annotations
+
+**1** Filters using the special `episodes`/`tracks` [filter](#special-filters) with the [default percent](details/definition.md).
+
+**2** Also filters out missing movies/shows from being added to Radarr/Sonarr. These Values also cannot use the `count` modifiers.
+
+**3** You can use `current_year` to have PMM use the current years value. This can be combined with a `-#` at the end to subtract that number of years. i.e. `current-2`
+
+**4** The actual numbers are pulled from the [PMM-Mediastingers](https://github.com/meisnate12/PMM-Mediastingers) Repo.
+
+**5** Also is a Tag Filter and can use all of those modifiers.
+
## Collection Filter Examples
A few examples are listed below:
diff --git a/docs/builders/smart.md b/docs/builders/smart.md
index 0bd681c1..66fa0945 100644
--- a/docs/builders/smart.md
+++ b/docs/builders/smart.md
@@ -2,7 +2,9 @@
Smart Builders allow Plex Meta Manager to create Smart Collections in two different ways.
-** Smart Builders do not currently work with Playlists **
+???+ note
+
+ Smart Builders do not currently work with Playlists
## Smart Label
diff --git a/docs/config/anidb.md b/docs/config/anidb.md
index 8f43574b..f0d96652 100644
--- a/docs/config/anidb.md
+++ b/docs/config/anidb.md
@@ -8,7 +8,7 @@ Using `username` and `password` allows you to access mature content with AniDB B
**All AniDB Builders still work without this, they will just not have mature content**
-A `anidb` mapping is in the root of the config file.
+An `anidb` mapping is in the root of the config file.
Below is a `anidb` mapping example and the full set of attributes:
```yaml
@@ -30,31 +30,31 @@ anidb:
| `username` | AniDB Username | N/A | :fontawesome-solid-circle-xmark:{ .red } |
| `password` | AniDB Password | N/A | :fontawesome-solid-circle-xmark:{ .red } |
-* To get a Client Name and Client Version please follow the following steps.
+To get a Client Name and Client Version please follow the following steps.
-1. Login to [AniDB](https://anidb.net/)
-2. Go to you [API Client Page](https://anidb.net/software/add) and go to the `Add New Project` Tab.
+1. Login to [AniDB](https://anidb.net/)
+2. Go to you [API Client Page](https://anidb.net/software/add) and go to the `Add New Project` Tab.
-![AniDB Add Project](anidb-1.png)
+ ![AniDB Add Project](anidb-1.png)
-3. Fill in the Project Name with whatever name you want and then hit `+ Add Project`. The rest of the settings don't matter.
-4. After you've added the project you should end up on the Projects Page. If not go back to the [API Client Page](https://anidb.net/software/add) and click your projects name.
-5. Once you're on the project page click `Add Client` in the top right.
+3. Fill in the Project Name with whatever name you want and then hit `+ Add Project`. The rest of the settings don't matter.
+4. After you've added the project you should end up on the Projects Page. If not go back to the [API Client Page](https://anidb.net/software/add) and click your projects name.
+5. Once you're on the project page click `Add Client` in the top right.
-![AniDB Add Client](anidb-2.png)
+ ![AniDB Add Client](anidb-2.png)
-6a. Come up with and enter a unique to AniDB Client Name
-6b. Select `HTTP API` in the API Dropdown
-6c. Put `1` for Version.
+6. Come up with and enter a unique to AniDB Client Name
+7. Select `HTTP API` in the API Dropdown
+8. Put `1` for Version.
-![AniDB Client Page](anidb-3.png)
+ ![AniDB Client Page](anidb-3.png)
-7. Put the Client Name and Client Version you just created in your config.yml as `client` and `version` respectively.
+9. Put the Client Name and Client Version you just created in your config.yml as `client` and `version` respectively.
-```yaml
-anidb:
- client: UniqueAniDBName
- version: 1
- language: en
- cache_expiration: 60
-```
\ No newline at end of file
+ ```yaml
+ anidb:
+ client: UniqueAniDBName
+ version: 1
+ language: en
+ cache_expiration: 60
+ ```
\ No newline at end of file
diff --git a/docs/config/libraries.md b/docs/config/libraries.md
index 1dfa5f68..88d3d3dc 100644
--- a/docs/config/libraries.md
+++ b/docs/config/libraries.md
@@ -155,12 +155,13 @@ libraries:
#### Remove Overlays
-This will remove all overlays from your library, but will not delete the overlaid images from your system, resulting in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
-You can remove overlays from a library by adding `remove_overlays: true` to `overlay_path`. This will remove all overlays when run and not generate new ones.
+You can remove overlays from a library by adding `remove_overlays: true` to `overlay_path`.
???+ warning "Proceed with Caution"
+ This will remove all overlays from your library, but will not delete the overlaid images from your system, resulting in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
+
```yaml
libraries:
TV Shows:
@@ -173,11 +174,11 @@ You can remove overlays from a library by adding `remove_overlays: true` to `ove
#### Reapply Overlays
-This will reapply all overlays on each run until this attribute is set to `false`, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
-
You can reapply overlays from a library by adding `reapply_overlays: true` to `overlay_path`. This will reapply overlays to every item in your library.
-???+ danger Proceed with Caution
+???+ danger "Important Notice"
+
+ This will reapply all overlays on each run until this attribute is set to `false`, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
```yaml
libraries:
@@ -191,11 +192,12 @@ You can reapply overlays from a library by adding `reapply_overlays: true` to `o
#### Reset Overlays
-This will reset all posters to the desired source on each run until this attribute is set to `false`, and will reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
-
You can reset overlays from a library by adding `reset_overlays` to `overlay_path` and setting it to either `tmdb` or `plex` depending on where you want to source the images from. This will use the reset image when overlaying items in your library.
-???+ danger "Proceed with Caution"
+???+ danger "Important Notice"
+
+ This will reset all posters to the desired source on each run until this attribute is set to `false`, and will reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
+
```yaml
libraries:
diff --git a/docs/config/mdblist.md b/docs/config/mdblist.md
index 093c6a72..c93b1608 100644
--- a/docs/config/mdblist.md
+++ b/docs/config/mdblist.md
@@ -16,6 +16,8 @@ mdblist:
| `apikey` | MdbList API Key | N/A | :fontawesome-solid-circle-check:{ .green } |
| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } |
-* The MdbList apikey can be found [here](https://mdblist.com/preferences/).
+???+ tip
-* The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled
+ The MdbList apikey can be found [here](https://mdblist.com/preferences/).
+
+ The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled
diff --git a/docs/config/myanimelist.md b/docs/config/myanimelist.md
index 3428d11c..07710ca3 100644
--- a/docs/config/myanimelist.md
+++ b/docs/config/myanimelist.md
@@ -5,6 +5,7 @@ Configuring [MyAnimeList](https://myanimelist.net/) is optional but is required
A `mal` mapping is in the root of the config file.
Below is a `mal` mapping example and the full set of attributes:
+
```yaml
mal:
client_id: ################################
@@ -23,46 +24,55 @@ mal:
| `client_secret` | MyAnimeList Application Client Secret | :fontawesome-solid-circle-check:{ .green } |
| `localhost_url` | MyAnimeList Authorization URL | :fontawesome-solid-circle-xmark:{ .red } |
-* All other attributes will be filled in by Plex Meta Manager.
+All other attributes will be filled in by Plex Meta Manager.
+
+To connect to MyAnimeList.net you must create a MyAnimeList application and supply Plex Meta Manager the `client id` and `client secret` provided, please do the following:
+
+1. [Click here to create a MyAnimeList API application.](https://myanimelist.net/apiconfig/create)
+2. Enter an `App Name` for the application. Ex. `Plex Meta Manager`
+3. Select `web` for `App Type`.
+4. Enter an `App Description` for the application Ex. `Plex Meta Manager manages metadata and collections`
+5. Enter `http://localhost/` for `App Redirect URL`.
+6. Enter `https://github.com/meisnate12/Plex-Meta-Manager` for `Homepage URL`.
+7. Select `non-commercial` for `Commercial / Non-Commercial`.
+8. Enter any name under `Name / Company Name`.
+9. Select `hobbyist` for `Purpose of Use`.
+10. Agree to the API License and Developer Agreement and hit the `Submit` button
+11. You should see `Successfully registered.` followed by a link that says `Return to list` click this link.
+12. On this page Click the `Edit` button next to the application you just created.
+13. Record the `Client ID` and `Client Secret` found on the application page.
+14. Go to this URL but replace `CLIENT_ID` with your Client ID
+
+ ```
+ https://myanimelist.net/v1/oauth2/authorize?response_type=code&client_id=CLIENT_ID&code_challenge=k_UHwN_eHAPQVXiceC-rYGkozKqrJmKxPUIUOBIKo1noq_4XGRVCViP_dGcwB-fkPql8f56mmWj5aWCa2HDeugf6sRvnc9Rjhbb1vKGYLY0IwWsDNXRqXdksaVGJthux
+ ```
-* To connect to MyAnimeList.net you must create a MyAnimeList application and supply Plex Meta Manager the `client id` and `client secret` provided, please do the following:
+15. You should see a page that looks like this
-1. [Click here to create a MyAnimeList API application.](https://myanimelist.net/apiconfig/create)
-2. Enter an `App Name` for the application. Ex. `Plex Meta Manager`
-3. Select `web` for `App Type`.
-4. Enter an `App Description` for the application Ex. `Plex Meta Manager manages metadata and collections`
-5. Enter `http://localhost/` for `App Redirect URL`.
-6. Enter `https://github.com/meisnate12/Plex-Meta-Manager` for `Homepage URL`.
-7. Select `non-commercial` for `Commercial / Non-Commercial`.
-8. Enter any name under `Name / Company Name`.
-9. Select `hobbyist` for `Purpose of Use`.
-10. Agree to the API License and Developer Agreement and hit the `Submit` button
-11. You should see `Successfully registered.` followed by a link that says `Return to list` click this link.
-12. On this page Click the `Edit` button next to the application you just created.
-13. Record the `Client ID` and `Client Secret` found on the application page.
-14. Go to this URL but replace `CLIENT_ID` with your Client ID
- ```
- https://myanimelist.net/v1/oauth2/authorize?response_type=code&client_id=CLIENT_ID&code_challenge=k_UHwN_eHAPQVXiceC-rYGkozKqrJmKxPUIUOBIKo1noq_4XGRVCViP_dGcwB-fkPql8f56mmWj5aWCa2HDeugf6sRvnc9Rjhbb1vKGYLY0IwWsDNXRqXdksaVGJthux
- ```
-15. You should see a page that looks like this
+ ![MAL Details](mal.png)
- ![MAL Details](mal.png)
+16. Click "Allow"
+17. You will be taken to a page that will not load. That's fine and expected.
- Click "Allow"
-16. You will be taken to a page that will not load. That's fine and expected.
+ ![Localhost Failure](localhost-fail.png)
- ![Localhost Failure](localhost-fail.png)
+18. Copy the URL, which will be `localhost/?code=BLAH` and paste in your config file next to `localhost_url`.
-17. Copy the URL, which will be `localhost/?code=BLAH` and paste in your config file next to `localhost_url`.
- NOTE: If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.
- You will need to stop that web server while you're doing this in order to grab that localhost URL.
-18. Run PMM and the auth will be completed.
+ **If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.**
+
+ You will need to stop that web server while you're doing this in order to grab that localhost URL.
-## Alternative Way Letting PMM make the URL
+19. Run PMM and the auth will be completed.
+
+## Alternative Way of Letting PMM make the URL
You can record just your `client_id` and `client_secret` and pmm will create the url for you described below.
-* On the first run, Plex Meta Manager will walk the user through the OAuth flow by producing a MyAnimeList URL for the user to follow. After following the URL login to MyAnimeList.net and authorize the application by clicking the `Allow` button which will redirect the user to `http://localhost/`. Copy the entire URL and paste it into Plex Meta Manager and if the URL is correct then Plex Meta Manager will populate the `authorization` sub-attributes to use in subsequent runs.
+On the first run, Plex Meta Manager will walk the user through the OAuth flow by producing a MyAnimeList URL for the user to follow.
+
+After following the URL login to MyAnimeList.net and authorize the application by clicking the `Allow` button which will redirect the user to `http://localhost/`.
+
+Copy the entire URL and paste it into Plex Meta Manager and if the URL is correct then Plex Meta Manager will populate the `authorization` sub-attributes to use in subsequent runs.
On first run:
```
@@ -87,7 +97,7 @@ Click "Allow", and you will be taken to a page that will not load. That's fine
Copy the URL, which will be `localhost/?code=BLAH` and paste it at the prompt.
-NOTE: If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.
+**If you do not see an error as above but instead get taken to some seemingly random website, you probably have a webserver running on your local computer, probably from some sort of tutorial if you don't recall having set one up. For example, some Docker tutorials have you start up local web servers.**
You will need to stop that web server while you're doing this in order to grab that localhost URL.
@@ -99,11 +109,11 @@ You will need to stop that web server while you're doing this in order to grab t
```
-OAuth Flow using Docker
+### OAuth Flow using Docker
To authenticate MyAnimeList the first time, you need run the container with the `-it` flags in order to walk through the OAuth flow mentioned above. Once you have the MyAnimeList authentication data saved into the YAML, you'll be able to run the container normally.
-OAuth Flow using unRAID Docker
+### OAuth Flow using unRAID Docker
Directions on how to authenticate MyAnimeList on unRAID can be found on the [unRAID Walkthrough](../pmm/install/guides/unraid.md#advanced-installation-authenticating-trakt-or-myanimelist) page.
diff --git a/docs/config/omdb.md b/docs/config/omdb.md
index 5f1ce47f..6c462d53 100644
--- a/docs/config/omdb.md
+++ b/docs/config/omdb.md
@@ -16,6 +16,8 @@ omdb:
| `apikey` | OMDb API Key | N/A | :fontawesome-solid-circle-check:{ .green } |
| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } |
-* The OMDb apikey can be generated [here](http://www.omdbapi.com/apikey.aspx).
+???+ tip
-* The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled
+ The OMDb apikey can be generated [here](http://www.omdbapi.com/apikey.aspx).
+
+ The free apikey is limited to 1000 requests per day so if you hit your limit the program should be able to pick up where it left off the next day as long as the `cache` [Setting](settings.md#cache) is enabled
diff --git a/docs/config/operations.md b/docs/config/operations.md
index 9654ca50..6e29ed12 100644
--- a/docs/config/operations.md
+++ b/docs/config/operations.md
@@ -66,7 +66,7 @@ Deletes collections based on a set of given attributes. The Collection must matc
|:-------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `managed` | **Values:**
`true`: Collection must be a Managed Collection to be deleted (the collection has the `PMM` label)
`false`: Collection must be an Unmanaged Collection to be deleted (the collection does not have the `PMM` label) |
| `configured` | **Values:**
`true`: Collection must be a Configured Collection to be deleted (collection is in the config file of the specific PMM run)
`false`: Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run).
**The collection does not need to be scheduled to be considered configured and only needs to be in the config file.** |
-| `less` | Collection must contain less then the given number of items to be deleted.
**Values:** Number Greater then 0 |
+| `less` | Collection must contain less then the given number of items to be deleted.
**Values:** Number greater than 0 |
**Example:**
@@ -246,6 +246,11 @@ Updates every item's episode's audience/critic/user rating in the library to the
Updates every item's poster to the chosen sites poster. Will fallback to `plex` if the given option fails. Assets will be used over anything else.
+???+ warning
+
+ When used in combination with Overlays, this could cause PMM to reset the poster and then reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
+
+
**Attribute:** `mass_poster_update`
**Values:** There are a few different options to determine how the `mass_poster_update` works.
@@ -272,6 +277,10 @@ library:
Updates every item's background to the chosen sites background. Will fallback to `plex` if the given option fails. Assets will be used over anything else.
+???+ warning
+
+ When used in combination with Overlays, this could cause PMM to reset the background and then reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
+
**Attribute:** `mass_background_update`
**Values:** There are a few different options to determine how the `mass_background_update` works.
diff --git a/docs/config/plex.md b/docs/config/plex.md
index 6acd1227..8f4d4983 100644
--- a/docs/config/plex.md
+++ b/docs/config/plex.md
@@ -9,6 +9,7 @@ Configuring [Plex](https://www.plex.tv/) is required in order to connect to your
A `plex` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify the `plex` mapping individually per library.
Below is a `plex` mapping example and the full set of attributes:
+
```yaml
plex:
url: http://192.168.1.12:32400
@@ -30,11 +31,14 @@ plex:
| `empty_trash` | Runs Empty Trash on the Server after all Metadata Files are run | false | ❌ |
| `optimize` | Runs Optimize on the Server after all Metadata Files are run | false | ❌ |
-* **Do Not Use the Plex Token found in Plex's Preferences.xml file**
+???+ warning
+
+ Do Not Use the Plex Token found in Plex's Preferences.xml file.
+
+ If you need help finding your Plex authentication token, please see Plex's [support article](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/).
-* This script can be run on a remote Plex server, but be sure that the `url` provided is publicly addressable, and it's recommended to use `HTTPS`.
+This script can be run on a remote Plex server, but be sure that the `url` provided is publicly addressable, and it's recommended to use `HTTPS`.
-* If you need help finding your Plex authentication token, please see Plex's [support article](https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/).
# Multi-Plex Instance Setup:
diff --git a/docs/config/radarr.md b/docs/config/radarr.md
index 3ec5c9fc..e628d752 100644
--- a/docs/config/radarr.md
+++ b/docs/config/radarr.md
@@ -6,7 +6,9 @@ search:
Configuring [Radarr](https://radarr.video/) is optional but will allow you to send movies to a Radarr instance when they're found missing while updating a library's collections.
-Radarr V2 may work, but it is not supported please upgrade to V3 if you can.
+???+ note
+
+ Radarr V2 may work, but it is not supported. Please upgrade to V3 if you can.
Items in your List Exclusions will be ignored by PMM.
@@ -49,9 +51,11 @@ radarr:
| `plex_path` | When using `add_existing` or `radarr_add_all` Convert this part of the path to `radarr_path`. | ` ` | ❌ |
| `radarr_path` | When using `add_existing` or `radarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | ❌ |
-* The `token` can be found by going to `Radarr > Settings > General > Security > API Key`
+???+ tip
+
+ The `token` can be found by going to `Radarr > Settings > General > Security > API Key`
-* The `quality_profile` must be the exact name of the desired quality profile, including all spaces and capitalization.
+ 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 Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition.
@@ -82,7 +86,6 @@ Specifying different options for specific libraries:
In this example we have two Radarr instances, standard and 4K, and four libraries showing how one can override individual settings at the library level. Also, movies are being added to the "Library05" library outside Radarr via a custom script and I want those new movies added to Radarr for tracking.
-
```
libraries:
Library01: # this library uses the default radarr config
diff --git a/docs/config/settings.md b/docs/config/settings.md
index b1f1d130..f7ef1be2 100644
--- a/docs/config/settings.md
+++ b/docs/config/settings.md
@@ -67,61 +67,39 @@ The available setting attributes which can be set at each level are outlined bel
## Cache
Cache the Plex GUID and associated IDs for each library item for faster subsequent processing. The cache file is created in the same directory as the configuration file.
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## Cache Expiration
Set the number of days before each cache mapping expires and has to be re-cached.
-
-
- Default Value |
- 60 |
-
-
- Allowed Values |
- any integer |
-
-
+| | |
+|---|---|
+| Default Value | 60 |
+| Allowed Values | any integer |
+
## Image Asset Directory
Specify the directory where assets (posters, backgrounds, etc) are located.
-
-
- Default Value |
- [Directory containing YAML config]/assets |
-
-
- Allowed Values |
- any directory |
-
-
+| | |
+|---|---|
+| Default Value | [Directory containing YAML config]/assets |
+| Allowed Values | any directory |
+
## Image Asset Folders
Search the `asset_directory` for a dedicated folder. Set to true if each poster is within its own directory.
i.e. `assets/Star Wars/poster.png` instead of `assets/Star Wars.png`
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## Asset Depth
@@ -130,19 +108,17 @@ At each asset level, PMM will look for either `medianame.ext` [such as Star Wars
i.e. `assets/Star Wars/poster.png` and `assets/Star Wars.png` are both asset depth 0
and `assets/Movies/Star Wars/poster.png` and `assets/Movies/Star Wars.png` are both asset level 1
-* `asset_folders` must be set to `true` for this to take effect.
-* increasing the amount of levels to scan will reduce performance
+???+ note
+
+ `asset_folders` must be set to `true` for this to take effect.
+
+ increasing the amount of levels to scan will reduce performance
+
+| | |
+|---|---|
+| Default Value | 0 |
+| Allowed Values | any integer |
-
-
- Default Value |
- 0 |
-
-
- Allowed Values |
- any integer |
-
-
## Create Asset Folders
@@ -157,196 +133,131 @@ Asset Searches can happen in a number of ways.
* Any Item that has an Overlay applied to it.
* Any Item found by a Builder while the definition also has `item_assets: true` specified.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Prioritize Assets
When determining which image to use on an item prioritize the `asset_directory` over all other images types.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Dimensional Asset Rename
Whilst searching for assets, scan the folders within the `asset_directory` and if an asset poster (i.e. `/ASSET_NAME/poster.ext`) was not found, rename the first image found that has a height greater than or equal to its width to `poster.ext`. If an asset background (i.e. `/ASSET_NAME/background.ext`), rename the first image found that has a width greater than its height to `background.ext`.
-* `asset_folders` must be set to `true` for this to take effect.
-
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+
+???+ note
+
+ `asset_folders` must be set to `true` for this to take effect.
+
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Download URL Assets
Whilst searching for assets, download images set within Metadata/Playlist files( i.e. images set by `url_poster` or `url_background`) into the asset folder if none are already present.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Show Missing Season Assets
Whilst searching for assets, when scanning for assets for a TV Show, if Season posters are found (i.e. `/ASSET_NAME/Season##.ext`), notify the user of any seasons which do not have an asset image.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Show Missing Episode Assets
Whilst searching for assets, when scanning for assets for a TV Show, if an Episode Title Card is found (i.e. `/ASSET_NAME/S##E##.ext`), notify the user of any episodes which do not have an asset image.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Show Asset Not Needed
Whilst searching for assets, show or hide the `update not needed` messages.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Sync Mode
Set the default `sync_mode` for collections.
-* `sync` will add and remove any items that are added/removed from the source builder
-* `append` will only add items that are added from the source builder, but will not remove anything even if it is removed from the source builder.
-
-
-
- Default Value |
- append |
-
-
- Allowed Values |
- append or sync
- |
-
-
+???+ note
+
+ `sync` will add and remove any items that are added/removed from the source builder
+ `append` will only add items that are added from the source builder, but will not remove anything even if it is removed from the source builder.
+
+| | |
+|---|---|
+| Default Value | append |
+| Allowed Values | `append` or `sync` |
+
## Default Collection Order
Set the default `collection_order` for every collection run by PMM.
-* `custom` cannot be used if more than one builder is being used for the collection (such as `imdb_list` and `trakt_list` within the same collection)
-
-
-
- Default Value |
- None |
-
-
- Allowed Values |
- release : Order Collection by Release Dates
- alpha : Order Collection Alphabetically
- custom : Order Collection Via the Builder Order
- Any plex_search sort option1
- |
-
-
+???+ note
+
+ `custom` cannot be used if more than one builder is being used for the collection (such as `imdb_list` and `trakt_list` within the same collection)
+
+| | |
+|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Default Value | `None` |
+| Allowed Values | `release`: Order Collection by Release Dates`alpha`: Order Collection Alphabetically`custom`: Order Collection Via the Builder OrderAny `plex_search` sort option1 |
+
1 `plex_search` sort options can be found [here](plex.md#sort-options)
## Minimum Items
Set the minimum number of items that must be found in order to build or update a collection/playlist.
-
-
- Default Value |
- 1 |
-
-
- Allowed Values |
- any integer |
-
-
+| | |
+|---|---|
+| Default Value | 1 |
+| Allowed Values | any integer |
+
## Delete Below Minimum
When a collection is run, delete the collection if it is below the minimum number specified by `minimum_items`.
-* Relies on `minimum_items` being set to the desired integer.
+???+ note
+
+ Relies on `minimum_items` being set to the desired integer.
+
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
## Delete Not Scheduled
If a collection is skipped due to it not being scheduled, delete the collection.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Run Again Delay
@@ -354,162 +265,110 @@ Set the number of minutes to delay running `run_again` collections after daily r
For example, if a collection adds items to Sonarr/Radarr, the library can automatically re-run "X" amount of time later so that any downloaded items are processed.
-* A collection is a `run_again` collection if it has the `run_again` [Setting Detail](../builders/details/definition.md) attribute set to true.
+???+ note
+
+ A collection is a `run_again` collection if it has the `run_again` [Setting Detail](../builders/details/definition.md) attribute set to true.
+
+| | |
+|---|---|
+| Default Value | 1 |
+| Allowed Values | any integer |
-
-
- Default Value |
- 1 |
-
-
- Allowed Values |
- any integer |
-
-
## Missing Only Released
Whilst running a collection, all unreleased missing items will be filtered out from the [missing YAML file](../builders/details/definition.md)
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Show Unmanaged Collections
List all collections not managed by Plex Meta Manager at the end of each run.
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## Show Filtered
List all items which have been filtered out of a collection (i.e. if it doesn't meet the filter criteria)
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Show Options
While `show_options` is true the available options for an attribute when using `plex_search`, `smart_filter` or `filters` will be shown.
i.e. a `smart_filter` on the `genre` attribute will return all of the attributes within the specified library.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Show Missing
While `show_missing` is true items missing from collections will be displayed.
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## Only Filter Missing
Only items missing from a collection will be filtered. **Only specific filters can filter missing. See [Filters](../metadata/filters.md) for more information.**
-* this can be used to filter which missing media items get sent to Sonarr/Radarr
+???+ note
+
+ this can be used to filter which missing media items get sent to Sonarr/Radarr
+
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
## Show Missing Assets
Display missing asset warnings
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## Save Report
Save a report of the items added, removed, filtered, or missing from collections to a YAML file in the same directory as your Metadata file.
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## TVDb Language
Specify the language to query TVDb in.
-* If no language is specified or the specified language is not found then the original language is used.
+???+ note
+
+ If no language is specified or the specified language is not found then the original language is used.
+
+| | |
+|---|---|
+| Default Value | None |
+| Allowed Values | Any ISO 639-2 Language Code1 |
-
-
- Default Value |
- None |
-
-
- Allowed Values |
- Any ISO 639-2 Language Code1 |
-
-
1 Language Codes can be found [here](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes)
@@ -517,145 +376,116 @@ Specify the language to query TVDb in.
Set a list or comma-separated string of TMDb/TVDb IDs to ignore in all collections.
-* this does not apply to `smart_filter` Collections
+???+ note
+
+ this does not apply to `smart_filter` Collections
+
+| | |
+|---|---|
+| Default Value | None |
+| Allowed Values | List or comma-separated string of TMDb/TVDb IDs |
-
-
- Default Value |
- None |
-
-
- Allowed Values |
- List or comma-separated string of TMDb/TVDb IDs |
-
-
## Ignore IMDb IDs
Set a list or comma-separated string of IMDb IDs to ignore in all collections.
-* this does not apply to `smart_filter` Collections
+???+ note
+
+ this does not apply to `smart_filter` Collections
+
+| | |
+|---|---|
+| Default Value | None |
+| Allowed Values | List or comma-separated string of IMDb IDs |
-
-
- Default Value |
- None |
-
-
- Allowed Values |
- List or comma-separated string of IMDb IDs |
-
-
## Item Refresh Delay
Specify the amount of time to wait between each `item_refresh` of every movie/show in a collection/playlist.
-* Useful if your Plex Media Server is having issues with high request levels.
+???+ note
+
+ Useful if your Plex Media Server is having issues with high request levels.
+
+| | |
+|---|---|
+| Default Value | 0 |
+| Allowed Values | any integer |
-
-
- Default Value |
- 0 |
-
-
- Allowed Values |
- any integer |
-
-
## Playlist Sync to Users
Set the default playlist `sync_to_users`. To Sync a playlist to only yourself leave `playlist_sync_to_users` blank.
-* sharing playlists with other users will not share any posters associated with the playlist, this is a Plex limitation.
-
-
- Default Value |
- all |
-
-
- Allowed Values |
- all , list of users, or comma-separated string of users |
-
-
+???+ note
+
+ sharing playlists with other users will not share any posters associated with the playlist, this is a Plex limitation.
+
+| | |
+|---|---|
+| Default Value | all |
+| Allowed Values | all, list of users, or comma-separated string of users |
+
## Playlist Exclude Users
Set the default playlist `exclude_users`.
-
-
- Default Value |
- |
-
-
- Allowed Values |
- list of users or comma-separated string of users |
-
-
+
+| | |
+|---|---|
+| Default Value | |
+| Allowed Values | list of users or comma-separated string of users |
+
# Playlist Report
Set `playlist_report` to true to print out a playlist report at the end of the log.
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
## Custom Repo
Specify where the `repo` attribute's base is when defining `metadata_path`, `playlist_file` and `overlay_path`.
-* Ensure you are using the raw GitHub link (i.e. https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12 )
+???+ note
+
+ Ensure you are using the raw GitHub link (i.e. https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12 )
+
+| | |
+|---|---|
+| Default Value | None |
+| Allowed Values | link to base repository |
-
-
- Default Value |
- None |
-
-
- Allowed Values |
- link to base repository |
-
-
## Verify SSL
Turn SSL Verification on or off.
-* set to false if your log file shows any errors similar to "SSL: CERTIFICATE_VERIFY_FAILED"
-
-
- Default Value |
- true |
-
-
- Allowed Values |
- true or false
- |
-
-
+???+ note
+
+ set to false if your log file shows any errors similar to "SSL: CERTIFICATE_VERIFY_FAILED"
+
+| | |
+|---|---|
+| Default Value | true |
+| Allowed Values | `true` or `false` |
+
## Check Nightly
Will check nightly for updates instead of develop.
-* This does not affect which version of PMM is grabbed when using `git pull` or any other update mechanism, it is only used for the initial version check when PMM runs to specify if a new version is available.
-* It is recommended to set this to `true` if you primarily use the `nightly` branch
-
-
-
- Default Value |
- false |
-
-
- Allowed Values |
- true or false
- |
-
-
+???+ note
+
+ This does not affect which version of PMM is grabbed when using `git pull` or any other update mechanism, it is only used for the initial version check when PMM runs to specify if a new version is available.
+
+ It is recommended to set this to `true` if you primarily use the `nightly` branch
+
+| | |
+|---|---|
+| Default Value | false |
+| Allowed Values | `true` or `false` |
+
diff --git a/docs/config/sonarr.md b/docs/config/sonarr.md
index d9501bb0..46de54a7 100644
--- a/docs/config/sonarr.md
+++ b/docs/config/sonarr.md
@@ -6,7 +6,9 @@ search:
Configuring [Sonarr](https://sonarr.tv/) is optional but will allow you to send shows to a Sonarr instance when they're found missing while updating a library's collections.
-Sonarr V2 may work, but it is not supported please upgrade to V3 if you can.
+???+ note
+
+ Sonarr V2 may work, but it is not supported please upgrade to V3 if you can.
Items in your List Exclusions will be ignored by PMM.
@@ -55,9 +57,11 @@ sonarr:
| `plex_path` | When using `add_existing` or `sonarr_add_all` Convert this part of the path to `sonarr_path`. | ` ` | ❌ |
| `sonarr_path` | When using `add_existing` or `sonarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | ❌ |
-* The `token` can be found by going to `Sonarr > Settings > General > Security > API Key`
+???+ tip
+
+ The `token` can be found by going to `Sonarr > Settings > General > Security > API Key`
-* The `quality_profile` and `language_profile` must be the exact name of the desired quality profile, including all spaces and capitalization.
+ 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 Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition.
diff --git a/docs/config/tautulli.md b/docs/config/tautulli.md
index 1ddfb5d8..3b93a414 100644
--- a/docs/config/tautulli.md
+++ b/docs/config/tautulli.md
@@ -17,9 +17,11 @@ tautulli:
| `url` | Tautulli URL
**Example:** http://192.168.1.12:8659 | N/A | :fontawesome-solid-circle-check:{ .green } |
| `apikey` | Tautulli API Key | N/A | :fontawesome-solid-circle-check:{ .green } |
-* The apikey can be found by going to Tautulli > Settings > Web Interface > API > API Key
+???+ tip
+
+ The apikey can be found by going to Tautulli > Settings > Web Interface > API > API Key
-# Other examples:
+# Other examples
Specifying a second Tautulli instance for a specific library:
diff --git a/docs/config/trakt.md b/docs/config/trakt.md
index ad60873a..95aedff1 100644
--- a/docs/config/trakt.md
+++ b/docs/config/trakt.md
@@ -31,18 +31,22 @@ trakt:
* All other attributes will be filled in by Plex Meta Manager.
-* To connect to Trakt.tv you must create a Trakt application and supply Plex Meta Manager the `client_id`, `client_secret`, and `pin` provided, please do the following:
-1. [Click here to create a Trakt API application.](https://trakt.tv/oauth/applications/new)
-2. Enter a `Name` for the application.
-3. Enter `urn:ietf:wg:oauth:2.0:oob` for `Redirect uri`.
-4. Click the `SAVE APP` button.
-5. Record the `Client ID` and `Client Secret` as `client_id` and `client_secret` in your Configuration File.
-6. Click the Green Authorize Button next to the Redirect URI
+To connect to Trakt.tv you must create a Trakt application and supply Plex Meta Manager the `client_id`, `client_secret`, and `pin` provided, please do the following:
+
+1. [Click here to create a Trakt API application.](https://trakt.tv/oauth/applications/new)
+2. Enter a `Name` for the application.
+3. Enter `urn:ietf:wg:oauth:2.0:oob` for `Redirect uri`.
+4. Click the `SAVE APP` button.
+5. Record the `Client ID` and `Client Secret` as `client_id` and `client_secret` in your Configuration File.
+6. Click the Green Authorize Button next to the Redirect URI
![Trakt Authorize](trakt.png)
-8. Record the `PIN` as `pin` in your Configuration File.
-* Run Plex Meta Manager shortly after obtaining your PIN; the PIN may expire at some point.
+7. Record the `PIN` as `pin` in your Configuration File.
+
+???+ warning
+
+ Run Plex Meta Manager shortly after obtaining your PIN; the PIN may expire at some point.
## Online Authorization Script
diff --git a/docs/defaults/chart/anilist.md b/docs/defaults/chart/anilist.md
index 52e62a79..dfc217a3 100644
--- a/docs/defaults/chart/anilist.md
+++ b/docs/defaults/chart/anilist.md
@@ -41,8 +41,8 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.
**Default:** `100`
**Values:** Number greater then 0 |
-| `limit_<>`1 | **Description:** Changes the number of items in a collection of the specified key's collection.
**Default:** `limit`
**Values:** Number greater then 0 |
+| `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.
**Default:** `100`
**Values:** Number greater than 0 |
+| `limit_<>`1 | **Description:** Changes the number of items in a collection of the specified key's collection.
**Default:** `limit`
**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.
**Default:** `sync`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `sync_mode_<>`1 | **Description:** Changes the Sync Mode of the specified key's collection.
**Default:** `sync_mode`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.
**Default:** `custom`
**Values:**`release` | Order Collection by Release Dates |
`alpha` | Order Collection Alphabetically |
`custom` | Order Collection Via the Builder Order |
[Any `plex_search` Sort Option](../../builders/plex.md#sort-options) | Order Collection by any `plex_search` Sort Option |
|
diff --git a/docs/defaults/chart/basic.md b/docs/defaults/chart/basic.md
index 8724270e..7c6558ec 100644
--- a/docs/defaults/chart/basic.md
+++ b/docs/defaults/chart/basic.md
@@ -39,11 +39,11 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:----------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit` | **Description:** Changes the Smart Filter Limit for all collections in a Defaults file.
**Values:** Number Greater then 0 |
-| `limit_<>`1 | **Description:** Changes the Smart Filter Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number Greater then 0 |
+| `limit` | **Description:** Changes the Smart Filter Limit for all collections in a Defaults file.
**Values:** Number greater than 0 |
+| `limit_<>`1 | **Description:** Changes the Smart Filter Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.
**Default:** `release.desc`
**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<>`1 | **Description:** Changes the Smart Filter Sort of the specified key's collection.
**Default:** `sort_by`
**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
-| `in_the_last_<>`1 | **Description:** Changes how far back the Smart Filter looks.**Default:** |
`released` | `90` |
`episodes` | `7` |
**Values:** Number Greater then 0 |
+| `in_the_last_<>`1 | **Description:** Changes how far back the Smart Filter looks.**Default:** |
`released` | `90` |
`episodes` | `7` |
**Values:** Number greater than 0 |
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<>` with when calling.
diff --git a/docs/defaults/chart/flixpatrol.md b/docs/defaults/chart/flixpatrol.md
index 81a6e8d9..e45b6b95 100644
--- a/docs/defaults/chart/flixpatrol.md
+++ b/docs/defaults/chart/flixpatrol.md
@@ -44,8 +44,8 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `10`
**Values:** Number Greater then 0 |
-| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number Greater then 0 |
+| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `10`
**Values:** Number greater than 0 |
+| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number greater than 0 |
| `location` | **Description:** Changes the Builder Location for all collections in a Defaults file.
**Default:** `world`
**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) |
| `location_<>`1 | **Description:** Changes the Builder Location of the specified key's collection.
**Default:** `location`
**Values:** [`location` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) |
| `time_window` | **Description:** Changes the Builder Time Window for all collections in a Defaults file.
**Default:** `last_week`
**Values:** [`time_window` Attribute Options](../../builders/flixpatrol.md#top-platform-attributes) |
diff --git a/docs/defaults/chart/myanimelist.md b/docs/defaults/chart/myanimelist.md
index 4a8c5018..ce7cc285 100644
--- a/docs/defaults/chart/myanimelist.md
+++ b/docs/defaults/chart/myanimelist.md
@@ -42,8 +42,8 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `100`
**Values:** Number Greater then 0 |
-| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number Greater then 0 |
+| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `100`
**Values:** Number greater than 0 |
+| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.
**Default:** `sync`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `sync_mode_<>`1 | **Description:** Changes the Sync Mode of the specified key's collection.
**Default:** `sync_mode`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.
**Default:** `custom`
**Values:**`release` | Order Collection by Release Dates |
`alpha` | Order Collection Alphabetically |
`custom` | Order Collection Via the Builder Order |
[Any `plex_search` Sort Option](../../builders/plex.md#sort-options) | Order Collection by any `plex_search` Sort Option |
|
diff --git a/docs/defaults/chart/other.md b/docs/defaults/chart/other.md
index e9572a40..9aa8d4a3 100644
--- a/docs/defaults/chart/other.md
+++ b/docs/defaults/chart/other.md
@@ -43,7 +43,7 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit_anidb` | **Description:** Changes the Builder Limit of the AniDB Popular Collection.
**Default:** `30`
**Values:** Number Greater then 0 |
+| `limit_anidb` | **Description:** Changes the Builder Limit of the AniDB Popular Collection.
**Default:** `30`
**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.
**Default:** `sync`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `sync_mode_<>`1 | **Description:** Changes the Sync Mode of the specified key's collection.
**Default:** `sync_mode`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.
**Default:** `custom`
**Values:**`release` | Order Collection by Release Dates |
`alpha` | Order Collection Alphabetically |
`custom` | Order Collection Via the Builder Order |
[Any `plex_search` Sort Option](../../builders/plex.md#sort-options) | Order Collection by any `plex_search` Sort Option |
|
diff --git a/docs/defaults/chart/tautulli.md b/docs/defaults/chart/tautulli.md
index c0c5e772..ac67951c 100644
--- a/docs/defaults/chart/tautulli.md
+++ b/docs/defaults/chart/tautulli.md
@@ -41,10 +41,10 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `list_days` | **Description:** Changes the `list_days` attribute of the builder for all collections in a Defaults file.
**Values:** Number greater then 0 |
-| `list_days_<>`1 | **Description:** Changes the `list_days` attribute of the builder of the specified key's collection.
**Values:** Number greater then 0 |
-| `list_size` | **Description:** Changes the `list_size` attribute of the builder for all collections in a Defaults file.
**Values:** Number greater then 0 |
-| `list_size_<>`1 | **Description:** Changes the `list_size` attribute of the builder of the specified key's collection.
**Values:** Number greater then 0 |
+| `list_days` | **Description:** Changes the `list_days` attribute of the builder for all collections in a Defaults file.
**Values:** Number greater than 0 |
+| `list_days_<>`1 | **Description:** Changes the `list_days` attribute of the builder of the specified key's collection.
**Values:** Number greater than 0 |
+| `list_size` | **Description:** Changes the `list_size` attribute of the builder for all collections in a Defaults file.
**Values:** Number greater than 0 |
+| `list_size_<>`1 | **Description:** Changes the `list_size` attribute of the builder of the specified key's collection.
**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.
**Default:** `sync`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `sync_mode_<>`1 | **Description:** Changes the Sync Mode of the specified key's collection.
**Default:** `sync_mode`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.
**Default:** `custom`
**Values:**`release` | Order Collection by Release Dates |
`alpha` | Order Collection Alphabetically |
`custom` | Order Collection Via the Builder Order |
[Any `plex_search` Sort Option](../../builders/plex.md#sort-options) | Order Collection by any `plex_search` Sort Option |
|
diff --git a/docs/defaults/chart/tmdb.md b/docs/defaults/chart/tmdb.md
index 3ac8be11..bf92854a 100644
--- a/docs/defaults/chart/tmdb.md
+++ b/docs/defaults/chart/tmdb.md
@@ -44,8 +44,8 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `100`
**Values:** Number Greater then 0 |
-| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number Greater then 0 |
+| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `100`
**Values:** Number greater than 0 |
+| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.
**Default:** `sync`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `sync_mode_<>`1 | **Description:** Changes the Sync Mode of the specified key's collection.
**Default:** `sync_mode`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.
**Default:** `custom`
**Values:**`release` | Order Collection by Release Dates |
`alpha` | Order Collection Alphabetically |
`custom` | Order Collection Via the Builder Order |
[Any `plex_search` Sort Option](../../builders/plex.md#sort-options) | Order Collection by any `plex_search` Sort Option |
|
diff --git a/docs/defaults/chart/trakt.md b/docs/defaults/chart/trakt.md
index 922a8316..b47fefba 100644
--- a/docs/defaults/chart/trakt.md
+++ b/docs/defaults/chart/trakt.md
@@ -44,8 +44,8 @@ All [Shared Collection Variables](../collection_variables.md) are available as w
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `100`
**Values:** Number Greater then 0 |
-| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number Greater then 0 |
+| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.
**Default:** `100`
**Values:** Number greater than 0 |
+| `limit_<>`1 | **Description:** Changes the Builder Limit of the specified key's collection.
**Default:** `limit`
**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.
**Default:** `sync`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `sync_mode_<>`1 | **Description:** Changes the Sync Mode of the specified key's collection.
**Default:** `sync_mode`
**Values:**`sync` | Add and Remove Items based on Builders |
`append` | Only Add Items based on Builders |
|
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.
**Default:** `custom`
**Values:**`release` | Order Collection by Release Dates |
`alpha` | Order Collection Alphabetically |
`custom` | Order Collection Via the Builder Order |
[Any `plex_search` Sort Option](../../builders/plex.md#sort-options) | Order Collection by any `plex_search` Sort Option |
|
diff --git a/docs/defaults/collection_list.md b/docs/defaults/collection_list.md
index 95a6195a..2a4dbddb 100644
--- a/docs/defaults/collection_list.md
+++ b/docs/defaults/collection_list.md
@@ -37,6 +37,7 @@ These collections are applied by calling the below paths into the `metadata_path
| [Other Charts](chart/other.md) | `other_chart` | AniDB Popular, Common Sense Selection | ✅ | ✅ |
1 Requires [Trakt Authentication](../config/trakt.md)
+
2 Requires [Tautulli Authentication](../config/tautulli.md)
### Content Collections
diff --git a/docs/defaults/overlay_list.md b/docs/defaults/overlay_list.md
index 45440dff..b868b42d 100644
--- a/docs/defaults/overlay_list.md
+++ b/docs/defaults/overlay_list.md
@@ -40,6 +40,7 @@ These overlays are applied by calling the below paths into the `overlay_path` [s
| [Video Format](overlays/video_format.md)1 | `video_format` | "REMUX", "HDTV" | ✅ | ❗ | ❗ | ✅ |
1 Designed for [TRaSH Guides](https://trash-guides.info/) filename naming scheme
+
2 Requires Plex Pass or [TRaSH Guides](https://trash-guides.info/) filename naming scheme
### Production Overlays
diff --git a/docs/defaults/overlays/flixpatrol.md b/docs/defaults/overlays/flixpatrol.md
index 6ea9a5d2..fedf5a15 100644
--- a/docs/defaults/overlays/flixpatrol.md
+++ b/docs/defaults/overlays/flixpatrol.md
@@ -68,11 +68,11 @@ All [Shared Overlay Variables](../overlay_variables.md) except `horizontal_offse
| `weight_<>`1 | **Description:** Controls the weight of the Overlay. Higher numbers have priority.
**Values:** Any Number |
| `font` | **Description:** Choose the font for the Overlay.
**Default:** `fonts/Inter-Medium.ttf`
**Values:** Path to font file |
| `font_style` | **Description:** Font style for Variable Fonts.
**Values:** Variable Font Style |
-| `font_size` | **Description:** Choose the font size for the Overlay.
**Default:** `50`
**Values:** Any Number greater then 0 |
+| `font_size` | **Description:** Choose the font size for the Overlay.
**Default:** `50`
**Values:** Any Number greater than 0 |
| `font_color` | **Description:** Choose the font color for the Overlay.
**Default:** `#FFFFFF`
**Values:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA` |
-| `stroke_width` | **Description:** Font Stroke Width for the Text Overlay.
**Values:** Any Number greater then 0 |
+| `stroke_width` | **Description:** Font Stroke Width for the Text Overlay.
**Values:** Any Number greater than 0 |
| `stroke_color` | **Description:** Font Stroke Color for the Text Overlay.
**Values:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA` |
-| `addon_offset` | **Description:** Text Addon Image Offset from the text.
**Default:** `30`
**Values:** Any Number greater then 0 |
+| `addon_offset` | **Description:** Text Addon Image Offset from the text.
**Default:** `30`
**Values:** Any Number greater than 0 |
| `addon_position` | **Description:** Text Addon Image Alignment in relation to the text.
**Default:** `top`
**Values:** `left`, `right`, `top`, `bottom` |
1. Each default overlay has a `key` that when calling to effect a specific overlay you must replace `<>` with when calling.
diff --git a/docs/metadata/dynamic.md b/docs/metadata/dynamic.md
index 67c6c54c..cc1b20e6 100644
--- a/docs/metadata/dynamic.md
+++ b/docs/metadata/dynamic.md
@@ -100,2246 +100,6 @@ dynamic_collections:
| [`include`](#include) | Define a list of keys to be made into collections. | ❌ |
| [`other_name`](#other-name) | Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. | ❌ |
-## Type & Data
-
-Specifies the type of dynamic collection to be created.
-
-Depending on the `type` of dynamic collection, `data` is used to specify the options that are required to fulfill the requirements of creating the collection.
-
-| Type Option | Description | Uses
`data` | Movies | Shows | Music | Video |
-|:----------------------------------------------|:------------------------------------------------------------------------------------------------------------|:--------------:|:--------:|:--------:|:--------:|:--------:|
-| [`tmdb_collection`](#tmdb-collection) | Create a collection for each TMDb Collection associated with an item in the library | ❌ | ✅ | ❌ | ❌ | ❌ |
-| [`tmdb_popular_people`](#tmdb-popular-people) | Create a collection for each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person) | ✅ | ✅ | ✅ | ❌ | ❌ |
-| [`original_language`](#original-language) | Create a collection for each TMDb original language associated with an item in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`origin_country`](#origin-country) | Create a collection for each TMDb origin country associated with an item in the library | ❌ | ❌ | ✅ | ❌ | ❌ |
-| [`trakt_user_lists`](#trakt-user-lists) | Create a collection for each list from specific trakt users | ✅ | ✅ | ✅ | ❌ | ❌ |
-| [`trakt_liked_lists`](#trakt-liked-lists) | Create a collection for each list the authenticated trakt user likes | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`trakt_people_list`](#trakt-people-list) | Create a collection for each actor found in the trakt list | ✅ | ✅ | ✅ | ❌ | ❌ |
-| [`actor`](#actor) | Create a collection for each actor found in the library | ✅ | ✅ | ✅ | ❌ | ❌ |
-| [`director`](#director) | Create a collection for each director found in the library | ✅ | ✅ | ❌ | ❌ | ❌ |
-| [`writer`](#writer) | Create a collection for each writer found in the library | ✅ | ✅ | ❌ | ❌ | ❌ |
-| [`producer`](#producer) | Create a collection for each producer found in the library | ✅ | ✅ | ❌ | ❌ | ❌ |
-| [`genre`](#genre) | Create a collection for each genre found in the library | ❌ | ✅ | ✅ | ✅ | ✅ |
-| [`album_genre`](#album-genre) | Create a collection for each album genre found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
-| [`content_rating`](#content-rating) | Create a collection for each content rating found in the library | ❌ | ✅ | ✅ | ❌ | ✅ |
-| [`year`](#year) | Create a collection for each year found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`episode_year`](#episode-year) | Create a collection for each episode year found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`decade`](#decade.md) | Create a collection for each decade found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`country`](#country.md) | Create a collection for each country found in the library | ❌ | ✅ | ❌ | ✅ | ✅ |
-| [`resolution`](#resolution) | Create a collection for each resolution found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`subtitle_language`](#subtitle-language) | Create a collection for each subtitle language found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`audio_language`](#audio-language) | Create a collection for each audio language found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`studio`](#studio) | Create a collection for each studio found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
-| [`edition`](#edition) | Create a collection for each edition found in the library | ❌ | ✅ | ❌ | ❌ | ❌ |
-| [`network`](#network) | Create a collection for each network found in the library | ❌ | ❌ | ✅ | ❌ | ❌ |
-| [`mood`](#mood) | Create a collection for each artist mood found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
-| [`album_mood`](#album-mood) | Create a collection for each album mood found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
-| [`track_mood`](#track-mood) | Create a collection for each track mood found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
-| [`style`](#style) | Create a collection for each artist style found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
-| [`album_style`](#album-style) | Create a collection for each album style found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
-| [`number`](#number) | Creates a collection for each number defined | ✅ | ✅ | ✅ | ✅ | ✅ |
-| [`custom`](#custom) | Creates a collection for each custom `key: key_name` pair defined. | ✅ | ✅ | ✅ | ✅ | ✅ |
-
-### TMDb Collection
-
-Create collections based on the TMDb Collections associated with items in the library.
-
-
-
- type Option |
- tmdb_collection |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- TMDb Collection ID |
-
-
- Key Names |
- TMDb Collection Title |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- tmdb_collection_details: <>
- minimum_items: 2
-```
-
- |
-
-
-
-#### Example: Create collection for every TMDb Collection found in the library.
-
-```yaml
-dynamic_collections:
- TMDb Collections: # This name is the mapping name
- type: tmdb_collection
- remove_suffix: Collection
- remove_prefix: The
-```
-
-### TMDb Popular People
-
-Create collections based on each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person).
-
-
-
- type Option |
- tmdb_popular_people |
-
-
- data Value |
- Number greater than 0 |
-
-
- Keys |
- TMDb Person ID |
-
-
- Key Names |
- TMDb Person Name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- tmdb_person: <>
- plex_search:
- all:
- actor: tmdb
-```
-
- |
-
-
-
-#### Example: Create collection for the top 10 popular people
-
-```yaml
-dynamic_collections:
- TMDb Popular People: # This name is the mapping name
- type: tmdb_popular_people
- data: 10
-```
-
-### Original Language
-
-Create collections based on the TMDb original language associated with items in the library.
-
-
-
- type Option |
- original_language |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- ISO 639-1 Code |
-
-
- Key Names |
- ISO Language Name |
-
-
- Default title_format |
- <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- plex_all: true
- filters:
- original_language: <>
-```
-
- |
-
-
-
-#### Example: Create collection for every TMDb Original Language found in the library.
-
-```yaml
-dynamic_collections:
- TMDb Languages: # This name is the mapping name
- type: original_language
-```
-
-### Origin Country
-
-Create collections based on the TMDb origin country associated with items in the library.
-
-
-
- type Option |
- origin_country |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- ISO 3166-1 alpha-2 country code |
-
-
- Key Names |
- ISO Country Name |
-
-
- Default title_format |
- <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- plex_all: true
- filters:
- origin_country: <>
-```
-
- |
-
-
-
-#### Example: Create collection for every TMDb Origin Country found in the library.
-
-```yaml
-dynamic_collections:
- TMDb Countries: # This name is the mapping name
- type: origin_country
-```
-
-### Trakt User Lists
-
-Create collections for each of the Trakt lists for the specified users. Use `me` to reference the authenticated user.
-
-* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File
-
-
-
- type Option |
- trakt_user_lists |
-
-
- data Value |
- List of Trakt Users |
-
-
- Keys |
- Trakt List URL |
-
-
- Key Names |
- Trakt List Title |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- trakt_list_details: <>
-```
-
- |
-
-
-
-#### Example: Create collections for each of the lists that the users have created
-
-```yaml
-dynamic_collections:
- Trakt User Lists: # This name is the mapping name
- type: trakt_user_lists
- data:
- - me
- - yozoraxcii
-```
-
-### Trakt Liked Lists
-
-Create collections for each of the Trakt lists that the authenticated user has liked.
-
-* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File
-
-
-
- type Option |
- trakt_liked_lists |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Trakt List URL |
-
-
- Key Names |
- Trakt List Title |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- trakt_list_details: <>
-```
-
- |
-
-
-
-#### Example: Create collections for each of the lists that the user has liked within Trakt
-
-```yaml
-dynamic_collections:
- Trakt Liked Lists: # This name is the mapping name
- type: trakt_liked_lists
-```
-
-### Trakt People List
-
-Create collections for each of the people found within Trakt lists that the user specifies.
-
-* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File
-
-
-
- type Option |
- trakt_people_list |
-
-
- data Value |
- List of Trakt URLs |
-
-
- Keys |
- TMDb Person ID |
-
-
- Key Names |
- TMDb Person Name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- tmdb_person: <>
- plex_search:
- all:
- actor: tmdb
-```
-
- |
-
-
-
-#### Example: Create a collection for each of the people on the trakt list
-```yaml
-dynamic_collections:
- Trakt People Lists:
- type: trakt_people_list
- data:
- - https://trakt.tv/users/ash9001/lists/all-time-top-actors
-```
-
-### Actor
-
-Create a collection for each actor found in the library.
-
-
-
- type Option |
- actor |
-
-
- data Values |
-
-
-
- Attribute |
- Description & Values |
-
-
- depth |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- minimum |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- limit |
- Values: Number greater than 0 |
- Default: None |
-
-
- |
-
-
- Keys |
- Person Name |
-
-
- Key Names |
- Person Name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- plex_search:
- any:
- actor: <>
-```
-
- |
-
-
-
-* `depth` determines how many top billed actor per item they are in. (i.e. if they play a cameo role, this is unlikely to be counted)
-* `minimum` determines the minimum number of times the actor must appear within `depth` for the collection to be created.
-* `limit` determines the number of actor collection to max out at. (i.e. if to make collections for the top 25 actors)
-
-#### Example:
-
-* Create a collection for the top 25 actors who appear in the top 5 billing credits of movies
-
-```yaml
-dynamic_collections:
- Top Actors: # mapping name does not matter just needs to be unique
- type: actor
- data:
- depth: 5
- limit: 25
-```
-
-#### Example:
-
-* Create a collection for actors who appear in the top 5 billing credits of movies
-* Only create the collection if they are in the top 5 billing credits of at least 20 movies
-
-```yaml
-dynamic_collections:
- Actors: # mapping name does not matter just needs to be unique
- type: actor
- data:
- depth: 5
- minimum: 20
-```
-
-### Director
-
-Create a collection for each director found in the library.
-
-
-
- type Option |
- director |
-
-
- data Values |
-
-
-
- Attribute |
- Description & Values |
-
-
- depth |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- minimum |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- limit |
- Values: Number greater than 0 |
- Default: None |
-
-
- |
-
-
- Keys |
- Person Name |
-
-
- Key Names |
- Person Name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- plex_search:
- any:
- director: <>
-```
-
- |
-
-
-
-* `depth` determines how many directors are looked at per item.
-* `minimum` determines the minimum number of times the director must appear within `depth` for the collection to be created.
-* `limit` determines the number of director collection to max out at. (i.e. if to make collections for the top 25 directors)
-
-#### Example:
-
-* Create a collection for the top 5 directors who appear in the top director credit of movies
-
-```yaml
-dynamic_collections:
- Top Directors: # mapping name does not matter just needs to be unique
- type: director
- data:
- depth: 1
- limit: 5
-```
-
-#### Example:
-
-* Create a collection for directors who appear in the top director credits of movies
-* Only create the collection if they are in the top director credits of at least 10 movies
-
-```yaml
-dynamic_collections:
- Directors: # mapping name does not matter just needs to be unique
- type: director
- data:
- depth: 1
- minimum: 10
-```
-
-### Writer
-
-Create a collection for each writer found in the library.
-
-
-
- type Option |
- writer |
-
-
- data Values |
-
-
-
- Attribute |
- Description & Values |
-
-
- depth |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- minimum |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- limit |
- Values: Number greater than 0 |
- Default: None |
-
-
- |
-
-
- Keys |
- Person Name |
-
-
- Key Names |
- Person Name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- plex_search:
- any:
- writer: <>
-```
-
- |
-
-
-
-* `depth` determines how many writers are looked at per item.
-* `minimum` determines the minimum number of times the writer must appear within `depth` for the collection to be created.
-* `limit` determines the number of writer collection to max out at. (i.e. if to make collections for the top 25 writers)
-
-#### Example:
-
-* Create a collection for the top 5 writers who appear in the top writer credit of movies
-
-```yaml
-dynamic_collections:
- Top Writers: # mapping name does not matter just needs to be unique
- type: writer
- data:
- depth: 1
- limit: 5
-```
-
-#### Example:
-
-* Create a collection for writers who appear in the top writer credits of movies
-* Only create the collection if they are in the top writer credits of at least 10 movies
-
-```yaml
-dynamic_collections:
- Writers: # mapping name does not matter just needs to be unique
- type: writer
- data:
- depth: 1
- minimum: 10
-```
-
-### Producer
-
-Create a collection for each producer found in the library.
-
-
-
- type Option |
- producer |
-
-
- data Values |
-
-
-
- Attribute |
- Description & Values |
-
-
- depth |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- minimum |
- Values: Number greater than 0 |
- Default: 3 |
-
-
- limit |
- Values: Number greater than 0 |
- Default: None |
-
-
- |
-
-
- Keys |
- Person Name |
-
-
- Key Names |
- Person Name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- plex_search:
- all:
- producer: <>
-```
-
- |
-
-
-
-* `depth` determines how many producers are looked at per item.
-* `minimum` determines the minimum number of times the producer must appear within `depth` for the collection to be created.
-* `limit` determines the number of producer collection to max out at. (i.e. if to make collections for the top 25 producers)
-
-#### Example:
-
-* Create a collection for the top 5 producers who appear in the top producer credit of movies
-
-```yaml
-dynamic_collections:
- Top Producers: # mapping name does not matter just needs to be unique
- type: producer
- data:
- depth: 1
- limit: 5
-```
-
-#### Example:
-
-* Create a collection for producers who appear in the top producer credits of movies
-* Only create the collection if they are in the top producer credits of at least 10 movies
-
-```yaml
-dynamic_collections:
- Producers: # mapping name does not matter just needs to be unique
- type: producers
- data:
- depth: 1
- minimum: 10
-```
-
-### Genre
-
-Create a collection for each genre found in the library.
-
-
-
- type Option |
- genre |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Genre |
-
-
- Key Names |
- Genre |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- genre: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create dynamic collections based on each genre found in the library (TV and Movies)
-* Amend the template to increase the limit from 50 to 100
-* Exclude the "Talk Show" genre
-* Name the collection "Top [Genre] Movies" or "Top [Genre] Shows"
-
-```yaml
-templates:
- genre collection:
- smart_filter:
- limit: 100
- sort_by: critic_rating.desc
- all:
- genre: <>
-dynamic_collections:
- Genres: # mapping name does not matter just needs to be unique
- type: genre
- exclude:
- - Talk Show
- title_format: Top <> <>s
- template: genre collection
-```
-
-### Album Genre
-
-Create a collection for each album genre found in the library.
-
-
-
- type Option |
- album_genre |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Genre |
-
-
- Key Names |
- Genre |
-
-
- Default title_format |
- Top <<key_name>> Albums |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: plays.desc
- any:
- album_genre: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create dynamic collections based on each Album genre found in the library
-* Amend the template to increase the limit from 10 to 20
-* Exclude the "Pop" genre
-* Name the collection "Top 20 [Genre] Albums"
-
-```yaml
-templates:
- genre collection:
- smart_filter:
- limit: 100
- sort_by: plays.desc
- all:
- album_genre: <>
-dynamic_collections:
- Genres: # mapping name does not matter just needs to be unique
- type: album_genre
- exclude:
- - Pop
- title_format: Top 20 <> <>s
- template: genre collection
-```
-
-### Content Rating
-
-Create a collection for each content rating found in the library.
-
-
-
- type Option |
- content_rating |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Content Rating |
-
-
- Key Names |
- Content Rating |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- content_rating: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create dynamic collections based on each content rating found in the library (TV and Movies)
-* Amend the template to increase the limit from 50 to 100
-
-```yaml
-templates:
- content rating collection:
- smart_filter:
- limit: 100
- sort_by: critic_rating.desc
- all:
- content_rating: <>
-dynamic_collections:
- Content Ratings: # mapping name does not matter just needs to be unique
- type: content_rating
- template: content rating collection
-```
-
-### Year
-
-Create a collection for each year found in the library.
-
-
-
- type Option |
- year |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Year |
-
-
- Key Names |
- Year |
-
-
- Default title_format |
- Best <<library_type>>s of <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- year: <>
-```
-
- |
-
-
-
-#### Example
-
-* Create dynamic collections based on each year found in the library (TV and Movies)
-* Use the `include` attribute to only show collections for years "2020", "2021" and "2022"
-* Name the collection "Best of [Year]"
-
-```yaml
-dynamic_collections:
- Years: # mapping name does not matter just needs to be unique
- type: year
- include:
- - 2020
- - 2021
- - 2022
- title_format: Best of <>
-```
-
-### Episode Year
-
-Create a collection for each episode year found in the library.
-
-
-
- type Option |
- episode_year |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Episode Year |
-
-
- Key Names |
- Year |
-
-
- Default title_format |
- Best <<library_type>>s of <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- episode_year: <>
-```
-
- |
-
-
-
-#### Example
-
-* Create dynamic collections based on each year found in the library (TV and Movies)
-* Use the `include` attribute to only show collections for years "2020", "2021" and "2022"
-* Name the collection "Best of [Year]"
-
-```yaml
-dynamic_collections:
- Years: # mapping name does not matter just needs to be unique
- type: episode_year
- include:
- - 2020
- - 2021
- - 2022
- title_format: Best of <>
-```
-
-### Decade
-
-Create a collection for each decade found in the library
-
-
-
- type Option |
- decade |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Decade |
-
-
- Key Names |
- Decade |
-
-
- Default title_format |
- Best <<library_type>>s of <<key_name>> |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- decade: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for each decade found in the library (TV and Movies)
-* Name the collection "Top [Decade] Movies"
-* Rename the `2020` collection name to "Top 2020 Movies (so far)"
-
-```yaml
-dynamic_collections:
- Decades: # mapping name does not matter just needs to be unique
- type: decade
- title_format: Top <> <>s
- title_override:
- 2020: Top 2020 Movies (so far)
-```
-
-### Country
-
-Create a collection for each country found in the library
-
-
-
- type Option |
- country |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Country |
-
-
- Key Names |
- Country |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- country: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for the top movies from each country found in the library
-* Name the collection "Top [Country] Cinema"
-* The `key_name_override` attribute is used here in combination with the `title_format` to change the collection name from "France" which would be the default title, to "Top French Cinema"
-
-```yaml
-dynamic_collections:
- Countries: # mapping name does not matter just needs to be unique
- type: country
- title_format: Top <> Cinema
- key_name_override:
- France: French
- Germany: German
- India: Indian
-```
-
-### Resolution
-
-Create a collection for each resolution found in the library
-
-
-
- type Option |
- resolution |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Resolution |
-
-
- Key Names |
- Resolution |
-
-
- Default title_format |
- <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: title.asc
- any:
- resolution: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for each resolution found in the library
-* Name the collection "[Resolution] Movies"
-* Combine 480p, 576p and SD into a collection called "SD Movies"
-```yaml
-dynamic_collections:
- Resolutions: # mapping name does not matter just needs to be unique
- type: resolution
- addons:
- 480p:
- - 576p
- - SD
- title_override:
- 480p: SD Movies
-```
-
-### Subtitle Language
-
-Create a collection for each subtitle language found in the library
-
-
-
- type Option |
- subtitle_language |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- ISO 639-1 Code |
-
-
- Key Names |
- Subtitle Language Name |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.asc
- any:
- subtitle_language: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for each subtitle language found in the library
-
-```yaml
-dynamic_collections:
- Subtitle Languages: # mapping name does not matter just needs to be unique
- type: subtitle_language
-```
-
-### Audio Language
-
-Create a collection for each audio language found in the library
-
-
-
- type Option |
- audio_language |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- ISO 639-1 Code |
-
-
- Key Names |
- Audio Language Name |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.asc
- any:
- audio_language: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for each audio language found in the library
-
-```yaml
-dynamic_collections:
- Audio Languages: # mapping name does not matter just needs to be unique
- type: audio_language
-```
-
-### Studio
-
-Create a collection for each studio found in the library.
-
-
-
- type Option |
- studio |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Studio |
-
-
- Key Names |
- Studio |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- studio: <>
-```
-
- |
-
-
-
-
-#### Example:
-
-* Create a collection for each studio found in a Movies library
-
-```yaml
-templates:
- studio collection:
- smart_filter:
- sort_by: critic_rating.desc
- all:
- studio: <>
-dynamic_collections:
- Studios: # mapping name does not matter just needs to be unique
- type: studio
- title_format: <>
- template: studio collection
-```
-
-### Edition
-
-Create a collection for each edition found in the library.
-
-
-
- type Option |
- edition |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Editions |
-
-
- Key Names |
- Edition |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- edition: <>
-```
-
- |
-
-
-
-
-#### Example:
-
-* Create a collection for each edition found in a Movies library
-
-```yaml
-templates:
- edition collection:
- smart_filter:
- sort_by: critic_rating.desc
- all:
- edition: <>
-dynamic_collections:
- Sditions: # mapping name does not matter just needs to be unique
- type: edition
- title_format: <>
- template: edition collection
-```
-
-### Network
-
-Create a collection for each network found in the library.
-
-
-
- type Option |
- network |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Network |
-
-
- Key Names |
- Network |
-
-
- Default title_format |
- Top <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: critic_rating.desc
- any:
- network: <>
-```
-
- |
-
-
-
-
-#### Example:
-
-* Create a collection for each network found in a TV Shows library
-
-```yaml
-templates:
- network collection:
- smart_filter:
- sort_by: critic_rating.desc
- all:
- network: <>
-dynamic_collections:
- Networks: # mapping name does not matter just needs to be unique
- type: network
- title_format: <>
- template: network collection
-```
-
-### Mood
-
-Create a collection for each artist mood found in the library.
-
-
-
- type Option |
- mood |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Mood |
-
-
- Key Names |
- Mood |
-
-
- Default title_format |
- Most Played <<value>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 10
- sort_by: plays.desc
- any:
- artist_mood: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for the top 20 artists for each mood found in the Music library
-* Amend the template to increase the limit from 10 to 20
-* Name the collection "Top 20 [Mood] Artists"
-
-```yaml
-templates:
- mood collection:
- smart_filter:
- limit: 20
- sort_by: plays.desc
- all:
- artist_mood: <>
-dynamic_collections:
- Moods: # mapping name does not matter just needs to be unique
- type: mood
- title_format: Top 20 <> Artists
- template: mood collection
-```
-
-### Album Mood
-
-Create a collection for each album mood found in the library.
-
-
-
- type Option |
- album_mood |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Mood |
-
-
- Key Names |
- Mood |
-
-
- Default title_format |
- Most Played <<value>> Albums |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 10
- sort_by: plays.desc
- any:
- album_mood: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for the top 20 albums for each mood found in the Music library
-* Amend the template to increase the limit from 10 to 20
-* Name the collection "Top 20 [Mood] Albums"
-
-```yaml
-templates:
- mood collection:
- smart_filter:
- limit: 20
- sort_by: plays.desc
- all:
- album_mood: <>
-dynamic_collections:
- Moods: # mapping name does not matter just needs to be unique
- type: album_mood
- title_format: Top 20 <> Albums
- template: mood collection
-```
-
-### Track Mood
-
-Create a collection for each track mood found in the library.
-
-
-
- type Option |
- track_mood |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Mood |
-
-
- Key Names |
- Mood |
-
-
- Default title_format |
- Most Played <<value>> Tracks |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 50
- sort_by: plays.desc
- any:
- track_mood: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for the top 100 tracks for each mood found in the Music library
-* Amend the template to increase the limit from 50 to 100
-* Name the collection "Top 100 [Mood] Tracks"
-
-```yaml
-templates:
- mood collection:
- smart_filter:
- limit: 100
- sort_by: plays.desc
- all:
- track_mood: <>
-dynamic_collections:
- Moods: # mapping name does not matter just needs to be unique
- type: track_mood
- title_format: Top 100 <> Tracks
- template: mood collection
-```
-
-### Style
-
-Create a collection for each artist style found in the library.
-
-
-
- type Option |
- style |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Style |
-
-
- Key Names |
- Style |
-
-
- Default title_format |
- Most Played <<key_name>> <<library_type>>s |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 10
- sort_by: plays.desc
- any:
- artist_style: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for the top 10 artists for each style found in the Music library
-* Name the collection "Top [Style] Artists"
-
-```yaml
-templates:
- style collection:
- smart_filter:
- limit: 10
- sort_by: plays.desc
- all:
- artist_style: <>
-dynamic_collections:
- Styles: # mapping name does not matter just needs to be unique
- type: style
- title_format: Top <> <>
- template: style collection
-```
-
-### Album Style
-
-Create a collection for each album style found in the library.
-
-
-
- type Option |
- album_style |
-
-
- data Value |
- Not Used |
-
-
- Keys |
- Style |
-
-
- Key Names |
- Style |
-
-
- Default title_format |
- Most Played <<key_name>> Albums |
-
-
- Default Template |
-
-
-```yaml
-default_template:
- smart_filter:
- limit: 10
- sort_by: plays.desc
- any:
- album_style: <>
-```
-
- |
-
-
-
-#### Example:
-
-* Create a collection for the top 10 albums for each style found in the Music library
-* Name the collection "Top [Style] Albums"
-
-```yaml
-templates:
- style collection:
- builder_level: album
- smart_filter:
- limit: 10
- sort_by: plays.desc
- all:
- album_style: <>
-dynamic_collections:
- Styles: # mapping name does not matter just needs to be unique
- type: album_style
- title_format: Top <> Albums
- template: style collection
-```
-
-### Number
-
-Creates a collection for each number defined.
-
-
-
- type Option |
- number |
-
-
- data Values |
-
-
-
- Attribute |
- Description & Values |
-
-
- starting |
- Values: Number greater than 0 |
- Default: 0 |
-
-
- ending |
- Values: Number greater than 1 |
- Default: 1 |
-
-
- increment |
- Values: Number greater than 0 |
- Default: 1 |
-
-
-
- starting and ending can also have the value current_year
- - You can also use a value relative to the
current_year by doing current_year-5
-
- |
-
-
- Keys |
- Number |
-
-
- Key Names |
- Number |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
- **None** |
-
-
-
-
-#### Example:
-
-* Create a collection for the Oscar Winner by Year for the last 5 years
-* Name the collection "Oscars Winners [Number]"
-
-```yaml
-templates:
- Oscars:
- summary: Academy Awards (Oscars) Winners for <>
- imdb_list: https://www.imdb.com/search/title/?release_date=<>-01-01,<>-12-31&groups=oscar_winner&sort=moviemeter,asc
- sync_mode: sync
- collection_order: custom
-dynamic_collections:
- Oscars Winners Awards:
- type: number
- sync: true
- data:
- starting: current_year-5
- ending: current_year
- title_format: Oscars Winners <>
- template:
- - Oscars
-```
-
-### Custom
-
-Creates a collection for each custom `key: key_name` pair defined.
-
-
-
- type Option |
- custom |
-
-
- data Values |
- Strings to iterate |
-
-
- Keys |
- key |
-
-
- Key Names |
- key_name |
-
-
- Default title_format |
- <<key_name>> |
-
-
- Default Template |
- None |
-
-
-
-#### Example:
-
-* Create a collection for the various Streaming Services
-* Name the collection "[Key Name] Movies"
-
-```yaml
-
-
-templates:
- streaming:
- cache_builders: 1
- smart_label: release.desc
- sync_mode: sync
- mdblist_list: https://mdblist.com/lists/plexmetamanager/<>-movies
- url_poster: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Images/master/streaming/<>.jpg
-
-dynamic_collections:
- Streaming:
- type: custom
- data:
- all-4: All 4
- appletv: Apple TV+
- bet: BET+
- britbox: BritBox
- disney: Disney+
- max: Max
- hulu: Hulu
- netflix: Netflix
- now: NOW
- paramount: Paramount+
- peacock: Peacock
- amazon-prime-video: Prime Video
- title_format: <> Movies
- template:
- - streaming
- - shared
-```
-
-## Exclude
-
-Exclude this list of `keys` from being created into collections.
-
-For example when making a `genre` dynamic collection definition you can exclude "Horror" from having a collection created from the key.
-
-```yaml
-dynamic_collections:
- Genres: # mapping name does not matter, just needs to be unique
- type: genre
- exclude:
- - Horror
-```
-
-## Addons
-
-Defines how multiple `keys` can be combined under a parent key.
-
-For example, the `addons` attribute can be used to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into the "MTV" collection.
-
-```yaml
-dynamic_collections:
- networks:
- type: network
- addons:
- MTV:
- - MTV2
- - MTV3
- - MTV (UK)
-```
-
-You can also define custom keys under addons if the main key doesn't exist as a key it will be considered a custom key combining all keys into one key.
-
-## Template
-
-Name of the template to use for these dynamic collections. Each `type` has its own default template, but if you want to define and use your own template you can.
-
-Each template is passed a few template variables you can use.
-* `value`: The list of keys and addons
-* `key`: The dynamic key
-* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it.
-
-For example, the template below removes the limit on the `smart_filter` so it shows all items in each network
-
-```yaml
-templates:
- network collection:
- smart_filter:
- sort_by: critic_rating.desc
- all:
- network: <>
-dynamic_collections:
- Networks: # mapping name does not matter just needs to be unique
- type: network
- title_format: <>
- template: network collection
-```
-
-## Template Variables
-
-Defines how template variables can be defined by key.
-
-For example, when using `type: tmdb_collection` and you want to define a poster url for some collections
-
-```yaml
-templates:
- my_template:
- optional:
- - my_collection_poster
- tmdb_collection_details: <>
- collection_order: release
- url_poster: <>
-dynamic_collections:
- TMDb Collections: # This name is the mapping name
- type: tmdb_collection
- remove_suffix: "Collection"
- template: my_template
- template_variables:
- my_collection_poster:
- 119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg
- 531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg
-```
-
-## Other Template
-
-Name of the template to use for the other collection. Will use the same template as the rest of the dynamic collections unless specified.
-
-Each template is passed a few template variables you can use.
-* `value`: The list of keys and addons
-* `key`: The dynamic key
-* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it.
-* `included_keys`: The list of included keys
-* `used_keys`: The list of all keys used (included_keys and their addon keys)
-
-## Remove Prefix/Suffix
-
-Removes the defined prefixes/suffixes from the key before it’s used in the collection title.
-
-For example, when using `type: tmdb_collection` you may not want every collection title to end with `Collection`
-
-```yaml
-dynamic_collections:
- TMDb Collections: # This name is the mapping name
- type: tmdb_collection
- remove_suffix: "Collection"
-```
-
-## Title Format
-
-This is the format for the collection titles.
-
-there are two special tags you can include in the `title_format`
-* `<>` is required and is what will be replaced by the dynamic key name.
-* `<>` will be replaced with either Movie, Show, or Artist depending on your library type.
-
-Here's an example using `title_format`.
-
-```yaml
-dynamic_collections:
- Genres: # mapping name does not matter just needs to be unique
- type: genre
- title_format: Top 50 <> <>s
-```
-
-## Key Name Override
-
-Defines how key names can be overridden before they are formatted into collection titles.
-
-This example uses the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France"
- * This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections.
-
-```yaml
-dynamic_collections:
- Countries: # mapping name does not matter, just needs to be unique
- type: country
- title_format: <> Cinema
- key_name_override:
- France: French
-```
-
-## Title Override
-
-Defines how collection titles can be overridden ignoring title formatting.
-
-Here's an example using `title_override` that will override the TMDb Star Wars collection which has an TMDb ID of `10` with `Star Wars Universe.
-
-```yaml
-dynamic_collections:
- TMDb Collections: # mapping name does not matter, just needs to be unique
- type: tmdb_collection
- remove_suffix: "Collection"
- title_override:
- 10: Star Wars Universe
-```
-
-## Custom Keys
-
-Defines if custom keys are allowed. Can be `true` or `false`. Defaults to `true`.
-
-Here's an example using `custom_keys`.
-
-```yaml
-dynamic_collections:
- TMDb Collections: # mapping name does not matter, just needs to be unique
- type: tmdb_collection
- remove_suffix: "Collection"
- custom_keys: false
-```
-
-## Test
-
-Will add `test: true` to all collections for test runs.
-
-Here's an example using `test`.
-
-```yaml
-dynamic_collections:
- Genres: # mapping name does not matter just needs to be unique
- type: genre
- test: true
-```
-
-## Sync
-
-Will remove dynamic collections that are no longer in the creation list.
-
-The mapping name is added as a label to any collection created using dynamic and because of this when `sync` is true all collections with that label not found in this run will be deleted.
-
-Here's an example using `sync`.
-
-```yaml
-dynamic_collections:
- Trakt Liked Lists: # mapping name does not matter just needs to be unique
- type: trakt_liked_lists
- sync: true
-```
-
-## Include
-
-Define a list of keys to be made into collections.
-
-This cannot be used with `exclude`.
-
-Here's an example using `include`.
-
-```yaml
-dynamic_collections:
- Genres: # mapping name does not matter just needs to be unique
- type: genre
- include:
- - Action
- - Adventure
- - Animation
- - Comedy
- - Family
- - Fantasy
- - Horror
- - Romance
- - Science Fiction
- - War
-```
-
-## Other Name
-
-Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection.
-
-This is the main reason to use `include`. It allows a catch all collection for everything not defined in the config file.
-
-Here's an example using `other_name`.
-
-```yaml
-dynamic_collections:
- Genres: # mapping name does not matter just needs to be unique
- type: genre
- other_name: Top Other Movies
- include:
- - Action
- - Adventure
- - Animation
- - Comedy
- - Family
- - Fantasy
- - Horror
- - Romance
- - Science Fiction
- - War
-```
+{%
+ include-markdown "./dynamic_types.md"
+%}
\ No newline at end of file
diff --git a/docs/metadata/dynamic_types.md b/docs/metadata/dynamic_types.md
new file mode 100644
index 00000000..8e53391d
--- /dev/null
+++ b/docs/metadata/dynamic_types.md
@@ -0,0 +1,2243 @@
+# Dynamic Collection Types
+
+Specifies the type of dynamic collection to be created.
+
+Depending on the `type` of dynamic collection, `data` is used to specify the options that are required to fulfill the requirements of creating the collection.
+
+| Type Option | Description | Uses
`data` | Movies | Shows | Music | Video |
+|:----------------------------------------------|:------------------------------------------------------------------------------------------------------------|:--------------:|:--------:|:--------:|:--------:|:--------:|
+| [`tmdb_collection`](#tmdb-collection) | Create a collection for each TMDb Collection associated with an item in the library | ❌ | ✅ | ❌ | ❌ | ❌ |
+| [`tmdb_popular_people`](#tmdb-popular-people) | Create a collection for each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person) | ✅ | ✅ | ✅ | ❌ | ❌ |
+| [`original_language`](#original-language) | Create a collection for each TMDb original language associated with an item in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`origin_country`](#origin-country) | Create a collection for each TMDb origin country associated with an item in the library | ❌ | ❌ | ✅ | ❌ | ❌ |
+| [`trakt_user_lists`](#trakt-user-lists) | Create a collection for each list from specific trakt users | ✅ | ✅ | ✅ | ❌ | ❌ |
+| [`trakt_liked_lists`](#trakt-liked-lists) | Create a collection for each list the authenticated trakt user likes | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`trakt_people_list`](#trakt-people-list) | Create a collection for each actor found in the trakt list | ✅ | ✅ | ✅ | ❌ | ❌ |
+| [`actor`](#actor) | Create a collection for each actor found in the library | ✅ | ✅ | ✅ | ❌ | ❌ |
+| [`director`](#director) | Create a collection for each director found in the library | ✅ | ✅ | ❌ | ❌ | ❌ |
+| [`writer`](#writer) | Create a collection for each writer found in the library | ✅ | ✅ | ❌ | ❌ | ❌ |
+| [`producer`](#producer) | Create a collection for each producer found in the library | ✅ | ✅ | ❌ | ❌ | ❌ |
+| [`genre`](#genre) | Create a collection for each genre found in the library | ❌ | ✅ | ✅ | ✅ | ✅ |
+| [`album_genre`](#album-genre) | Create a collection for each album genre found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
+| [`content_rating`](#content-rating) | Create a collection for each content rating found in the library | ❌ | ✅ | ✅ | ❌ | ✅ |
+| [`year`](#year) | Create a collection for each year found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`episode_year`](#episode-year) | Create a collection for each episode year found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`decade`](#decade.md) | Create a collection for each decade found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`country`](#country.md) | Create a collection for each country found in the library | ❌ | ✅ | ❌ | ✅ | ✅ |
+| [`resolution`](#resolution) | Create a collection for each resolution found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`subtitle_language`](#subtitle-language) | Create a collection for each subtitle language found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`audio_language`](#audio-language) | Create a collection for each audio language found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`studio`](#studio) | Create a collection for each studio found in the library | ❌ | ✅ | ✅ | ❌ | ❌ |
+| [`edition`](#edition) | Create a collection for each edition found in the library | ❌ | ✅ | ❌ | ❌ | ❌ |
+| [`network`](#network) | Create a collection for each network found in the library | ❌ | ❌ | ✅ | ❌ | ❌ |
+| [`mood`](#mood) | Create a collection for each artist mood found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
+| [`album_mood`](#album-mood) | Create a collection for each album mood found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
+| [`track_mood`](#track-mood) | Create a collection for each track mood found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
+| [`style`](#style) | Create a collection for each artist style found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
+| [`album_style`](#album-style) | Create a collection for each album style found in the library | ❌ | ❌ | ❌ | ✅ | ❌ |
+| [`number`](#number) | Creates a collection for each number defined | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [`custom`](#custom) | Creates a collection for each custom `key: key_name` pair defined. | ✅ | ✅ | ✅ | ✅ | ✅ |
+
+## TMDb Collection
+
+Create collections based on the TMDb Collections associated with items in the library.
+
+
+
+ type |
+ tmdb_collection |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ TMDb Collection ID |
+
+
+ Key Names |
+ TMDb Collection Title |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ tmdb_collection_details: <>
+ minimum_items: 2
+```
+
+ |
+
+
+
+### Example: Create collection for every TMDb Collection found in the library.
+
+```yaml
+dynamic_collections:
+ TMDb Collections: # This name is the mapping name
+ type: tmdb_collection
+ remove_suffix: Collection
+ remove_prefix: The
+```
+
+## TMDb Popular People
+
+Create collections based on each actor found on [TMDb's Popular People List](https://www.themoviedb.org/person).
+
+
+
+ type |
+ tmdb_popular_people |
+
+
+ data |
+ Number greater than 0 |
+
+
+ Keys |
+ TMDb Person ID |
+
+
+ Key Names |
+ TMDb Person Name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ tmdb_person: <>
+ plex_search:
+ all:
+ actor: tmdb
+```
+
+ |
+
+
+
+### Example: Create collection for the top 10 popular people
+
+```yaml
+dynamic_collections:
+ TMDb Popular People: # This name is the mapping name
+ type: tmdb_popular_people
+ data: 10
+```
+
+## Original Language
+
+Create collections based on the TMDb original language associated with items in the library.
+
+
+
+ type |
+ original_language |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ ISO 639-1 Code |
+
+
+ Key Names |
+ ISO Language Name |
+
+
+ Default title_format |
+ <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ plex_all: true
+ filters:
+ original_language: <>
+```
+
+ |
+
+
+
+### Example: Create collection for every TMDb Original Language found in the library.
+
+```yaml
+dynamic_collections:
+ TMDb Languages: # This name is the mapping name
+ type: original_language
+```
+
+## Origin Country
+
+Create collections based on the TMDb origin country associated with items in the library.
+
+
+
+ type |
+ origin_country |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ ISO 3166-1 alpha-2 country code |
+
+
+ Key Names |
+ ISO Country Name |
+
+
+ Default title_format |
+ <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ plex_all: true
+ filters:
+ origin_country: <>
+```
+
+ |
+
+
+
+### Example: Create collection for every TMDb Origin Country found in the library.
+
+```yaml
+dynamic_collections:
+ TMDb Countries: # This name is the mapping name
+ type: origin_country
+```
+
+## Trakt User Lists
+
+Create collections for each of the Trakt lists for the specified users. Use `me` to reference the authenticated user.
+
+* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File
+
+
+
+ type |
+ trakt_user_lists |
+
+
+ data |
+ List of Trakt Users |
+
+
+ Keys |
+ Trakt List URL |
+
+
+ Key Names |
+ Trakt List Title |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ trakt_list_details: <>
+```
+
+ |
+
+
+
+### Example: Create collections for each of the lists that the users have created
+
+```yaml
+dynamic_collections:
+ Trakt User Lists: # This name is the mapping name
+ type: trakt_user_lists
+ data:
+ - me
+ - yozoraxcii
+```
+
+## Trakt Liked Lists
+
+Create collections for each of the Trakt lists that the authenticated user has liked.
+
+* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File
+
+
+
+ type |
+ trakt_liked_lists |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Trakt List URL |
+
+
+ Key Names |
+ Trakt List Title |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ trakt_list_details: <>
+```
+
+ |
+
+
+
+### Example: Create collections for each of the lists that the user has liked within Trakt
+
+```yaml
+dynamic_collections:
+ Trakt Liked Lists: # This name is the mapping name
+ type: trakt_liked_lists
+```
+
+## Trakt People List
+
+Create collections for each of the people found within Trakt lists that the user specifies.
+
+* Requires [Trakt Authentication](../config/trakt.md) to be configured within the Configuration File
+
+
+
+ type |
+ trakt_people_list |
+
+
+ data |
+ List of Trakt URLs |
+
+
+ Keys |
+ TMDb Person ID |
+
+
+ Key Names |
+ TMDb Person Name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ tmdb_person: <>
+ plex_search:
+ all:
+ actor: tmdb
+```
+
+ |
+
+
+
+### Example: Create a collection for each of the people on the trakt list
+```yaml
+dynamic_collections:
+ Trakt People Lists:
+ type: trakt_people_list
+ data:
+ - https://trakt.tv/users/ash9001/lists/all-time-top-actors
+```
+
+## Actor
+
+Create a collection for each actor found in the library.
+
+
+
+ type |
+ actor |
+
+
+ data s |
+
+
+
+ Attribute |
+ Description & Values |
+
+
+ depth |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ minimum |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ limit |
+ Values: Number greater than 0 |
+ Default: None |
+
+
+ |
+
+
+ Keys |
+ Person Name |
+
+
+ Key Names |
+ Person Name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ plex_search:
+ any:
+ actor: <>
+```
+
+ |
+
+
+
+* `depth` determines how many top billed actor per item they are in. (i.e. if they play a cameo role, this is unlikely to be counted)
+* `minimum` determines the minimum number of times the actor must appear within `depth` for the collection to be created.
+* `limit` determines the number of actor collection to max out at. (i.e. if to make collections for the top 25 actors)
+
+### Example:
+
+* Create a collection for the top 25 actors who appear in the top 5 billing credits of movies
+
+```yaml
+dynamic_collections:
+ Top Actors: # mapping name does not matter just needs to be unique
+ type: actor
+ data:
+ depth: 5
+ limit: 25
+```
+
+### Example:
+
+* Create a collection for actors who appear in the top 5 billing credits of movies
+* Only create the collection if they are in the top 5 billing credits of at least 20 movies
+
+```yaml
+dynamic_collections:
+ Actors: # mapping name does not matter just needs to be unique
+ type: actor
+ data:
+ depth: 5
+ minimum: 20
+```
+
+## Director
+
+Create a collection for each director found in the library.
+
+
+
+ type |
+ director |
+
+
+ data s |
+
+
+
+ Attribute |
+ Description & Values |
+
+
+ depth |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ minimum |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ limit |
+ Values: Number greater than 0 |
+ Default: None |
+
+
+ |
+
+
+ Keys |
+ Person Name |
+
+
+ Key Names |
+ Person Name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ plex_search:
+ any:
+ director: <>
+```
+
+ |
+
+
+
+* `depth` determines how many directors are looked at per item.
+* `minimum` determines the minimum number of times the director must appear within `depth` for the collection to be created.
+* `limit` determines the number of director collection to max out at. (i.e. if to make collections for the top 25 directors)
+
+### Example:
+
+* Create a collection for the top 5 directors who appear in the top director credit of movies
+
+```yaml
+dynamic_collections:
+ Top Directors: # mapping name does not matter just needs to be unique
+ type: director
+ data:
+ depth: 1
+ limit: 5
+```
+
+### Example:
+
+* Create a collection for directors who appear in the top director credits of movies
+* Only create the collection if they are in the top director credits of at least 10 movies
+
+```yaml
+dynamic_collections:
+ Directors: # mapping name does not matter just needs to be unique
+ type: director
+ data:
+ depth: 1
+ minimum: 10
+```
+
+## Writer
+
+Create a collection for each writer found in the library.
+
+
+
+ type |
+ writer |
+
+
+ data s |
+
+
+
+ Attribute |
+ Description & Values |
+
+
+ depth |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ minimum |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ limit |
+ Values: Number greater than 0 |
+ Default: None |
+
+
+ |
+
+
+ Keys |
+ Person Name |
+
+
+ Key Names |
+ Person Name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ plex_search:
+ any:
+ writer: <>
+```
+
+ |
+
+
+
+* `depth` determines how many writers are looked at per item.
+* `minimum` determines the minimum number of times the writer must appear within `depth` for the collection to be created.
+* `limit` determines the number of writer collection to max out at. (i.e. if to make collections for the top 25 writers)
+
+### Example:
+
+* Create a collection for the top 5 writers who appear in the top writer credit of movies
+
+```yaml
+dynamic_collections:
+ Top Writers: # mapping name does not matter just needs to be unique
+ type: writer
+ data:
+ depth: 1
+ limit: 5
+```
+
+### Example:
+
+* Create a collection for writers who appear in the top writer credits of movies
+* Only create the collection if they are in the top writer credits of at least 10 movies
+
+```yaml
+dynamic_collections:
+ Writers: # mapping name does not matter just needs to be unique
+ type: writer
+ data:
+ depth: 1
+ minimum: 10
+```
+
+## Producer
+
+Create a collection for each producer found in the library.
+
+
+
+ type |
+ producer |
+
+
+ data s |
+
+
+
+ Attribute |
+ Description & Values |
+
+
+ depth |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ minimum |
+ Values: Number greater than 0 |
+ Default: 3 |
+
+
+ limit |
+ Values: Number greater than 0 |
+ Default: None |
+
+
+ |
+
+
+ Keys |
+ Person Name |
+
+
+ Key Names |
+ Person Name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ plex_search:
+ all:
+ producer: <>
+```
+
+ |
+
+
+
+* `depth` determines how many producers are looked at per item.
+* `minimum` determines the minimum number of times the producer must appear within `depth` for the collection to be created.
+* `limit` determines the number of producer collection to max out at. (i.e. if to make collections for the top 25 producers)
+
+### Example:
+
+* Create a collection for the top 5 producers who appear in the top producer credit of movies
+
+```yaml
+dynamic_collections:
+ Top Producers: # mapping name does not matter just needs to be unique
+ type: producer
+ data:
+ depth: 1
+ limit: 5
+```
+
+### Example:
+
+* Create a collection for producers who appear in the top producer credits of movies
+* Only create the collection if they are in the top producer credits of at least 10 movies
+
+```yaml
+dynamic_collections:
+ Producers: # mapping name does not matter just needs to be unique
+ type: producers
+ data:
+ depth: 1
+ minimum: 10
+```
+
+## Genre
+
+Create a collection for each genre found in the library.
+
+
+
+ type |
+ genre |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Genre |
+
+
+ Key Names |
+ Genre |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ genre: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create dynamic collections based on each genre found in the library (TV and Movies)
+* Amend the template to increase the limit from 50 to 100
+* Exclude the "Talk Show" genre
+* Name the collection "Top [Genre] Movies" or "Top [Genre] Shows"
+
+```yaml
+templates:
+ genre collection:
+ smart_filter:
+ limit: 100
+ sort_by: critic_rating.desc
+ all:
+ genre: <>
+dynamic_collections:
+ Genres: # mapping name does not matter just needs to be unique
+ type: genre
+ exclude:
+ - Talk Show
+ title_format: Top <> <>s
+ template: genre collection
+```
+
+## Album Genre
+
+Create a collection for each album genre found in the library.
+
+
+
+ type |
+ album_genre |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Genre |
+
+
+ Key Names |
+ Genre |
+
+
+ Default title_format |
+ Top <<key_name>> Albums |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: plays.desc
+ any:
+ album_genre: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create dynamic collections based on each Album genre found in the library
+* Amend the template to increase the limit from 10 to 20
+* Exclude the "Pop" genre
+* Name the collection "Top 20 [Genre] Albums"
+
+```yaml
+templates:
+ genre collection:
+ smart_filter:
+ limit: 100
+ sort_by: plays.desc
+ all:
+ album_genre: <>
+dynamic_collections:
+ Genres: # mapping name does not matter just needs to be unique
+ type: album_genre
+ exclude:
+ - Pop
+ title_format: Top 20 <> <>s
+ template: genre collection
+```
+
+## Content Rating
+
+Create a collection for each content rating found in the library.
+
+
+
+ type |
+ content_rating |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Content Rating |
+
+
+ Key Names |
+ Content Rating |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ content_rating: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create dynamic collections based on each content rating found in the library (TV and Movies)
+* Amend the template to increase the limit from 50 to 100
+
+```yaml
+templates:
+ content rating collection:
+ smart_filter:
+ limit: 100
+ sort_by: critic_rating.desc
+ all:
+ content_rating: <>
+dynamic_collections:
+ Content Ratings: # mapping name does not matter just needs to be unique
+ type: content_rating
+ template: content rating collection
+```
+
+## Year
+
+Create a collection for each year found in the library.
+
+
+
+ type |
+ year |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Year |
+
+
+ Key Names |
+ Year |
+
+
+ Default title_format |
+ Best <<library_type>>s of <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ year: <>
+```
+
+ |
+
+
+
+### Example
+
+* Create dynamic collections based on each year found in the library (TV and Movies)
+* Use the `include` attribute to only show collections for years "2020", "2021" and "2022"
+* Name the collection "Best of [Year]"
+
+```yaml
+dynamic_collections:
+ Years: # mapping name does not matter just needs to be unique
+ type: year
+ include:
+ - 2020
+ - 2021
+ - 2022
+ title_format: Best of <>
+```
+
+## Episode Year
+
+Create a collection for each episode year found in the library.
+
+
+
+ type |
+ episode_year |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Episode Year |
+
+
+ Key Names |
+ Year |
+
+
+ Default title_format |
+ Best <<library_type>>s of <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ episode_year: <>
+```
+
+ |
+
+
+
+### Example
+
+* Create dynamic collections based on each year found in the library (TV and Movies)
+* Use the `include` attribute to only show collections for years "2020", "2021" and "2022"
+* Name the collection "Best of [Year]"
+
+```yaml
+dynamic_collections:
+ Years: # mapping name does not matter just needs to be unique
+ type: episode_year
+ include:
+ - 2020
+ - 2021
+ - 2022
+ title_format: Best of <>
+```
+
+## Decade
+
+Create a collection for each decade found in the library
+
+
+
+ type |
+ decade |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Decade |
+
+
+ Key Names |
+ Decade |
+
+
+ Default title_format |
+ Best <<library_type>>s of <<key_name>> |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ decade: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for each decade found in the library (TV and Movies)
+* Name the collection "Top [Decade] Movies"
+* Rename the `2020` collection name to "Top 2020 Movies (so far)"
+
+```yaml
+dynamic_collections:
+ Decades: # mapping name does not matter just needs to be unique
+ type: decade
+ title_format: Top <> <>s
+ title_override:
+ 2020: Top 2020 Movies (so far)
+```
+
+## Country
+
+Create a collection for each country found in the library
+
+
+
+ type |
+ country |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Country |
+
+
+ Key Names |
+ Country |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ country: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for the top movies from each country found in the library
+* Name the collection "Top [Country] Cinema"
+* The `key_name_override` attribute is used here in combination with the `title_format` to change the collection name from "France" which would be the default title, to "Top French Cinema"
+
+```yaml
+dynamic_collections:
+ Countries: # mapping name does not matter just needs to be unique
+ type: country
+ title_format: Top <> Cinema
+ key_name_override:
+ France: French
+ Germany: German
+ India: Indian
+```
+
+## Resolution
+
+Create a collection for each resolution found in the library
+
+
+
+ type |
+ resolution |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Resolution |
+
+
+ Key Names |
+ Resolution |
+
+
+ Default title_format |
+ <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: title.asc
+ any:
+ resolution: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for each resolution found in the library
+* Name the collection "[Resolution] Movies"
+* Combine 480p, 576p and SD into a collection called "SD Movies"
+```yaml
+dynamic_collections:
+ Resolutions: # mapping name does not matter just needs to be unique
+ type: resolution
+ addons:
+ 480p:
+ - 576p
+ - SD
+ title_override:
+ 480p: SD Movies
+```
+
+## Subtitle Language
+
+Create a collection for each subtitle language found in the library
+
+
+
+ type |
+ subtitle_language |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ ISO 639-1 Code |
+
+
+ Key Names |
+ Subtitle Language Name |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.asc
+ any:
+ subtitle_language: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for each subtitle language found in the library
+
+```yaml
+dynamic_collections:
+ Subtitle Languages: # mapping name does not matter just needs to be unique
+ type: subtitle_language
+```
+
+## Audio Language
+
+Create a collection for each audio language found in the library
+
+
+
+ type |
+ audio_language |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ ISO 639-1 Code |
+
+
+ Key Names |
+ Audio Language Name |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.asc
+ any:
+ audio_language: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for each audio language found in the library
+
+```yaml
+dynamic_collections:
+ Audio Languages: # mapping name does not matter just needs to be unique
+ type: audio_language
+```
+
+## Studio
+
+Create a collection for each studio found in the library.
+
+
+
+ type |
+ studio |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Studio |
+
+
+ Key Names |
+ Studio |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ studio: <>
+```
+
+ |
+
+
+
+
+### Example:
+
+* Create a collection for each studio found in a Movies library
+
+```yaml
+templates:
+ studio collection:
+ smart_filter:
+ sort_by: critic_rating.desc
+ all:
+ studio: <>
+dynamic_collections:
+ Studios: # mapping name does not matter just needs to be unique
+ type: studio
+ title_format: <>
+ template: studio collection
+```
+
+## Edition
+
+Create a collection for each edition found in the library.
+
+
+
+ type |
+ edition |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Editions |
+
+
+ Key Names |
+ Edition |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ edition: <>
+```
+
+ |
+
+
+
+
+### Example:
+
+* Create a collection for each edition found in a Movies library
+
+```yaml
+templates:
+ edition collection:
+ smart_filter:
+ sort_by: critic_rating.desc
+ all:
+ edition: <>
+dynamic_collections:
+ Sditions: # mapping name does not matter just needs to be unique
+ type: edition
+ title_format: <>
+ template: edition collection
+```
+
+## Network
+
+Create a collection for each network found in the library.
+
+
+
+ type |
+ network |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Network |
+
+
+ Key Names |
+ Network |
+
+
+ Default title_format |
+ Top <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: critic_rating.desc
+ any:
+ network: <>
+```
+
+ |
+
+
+
+
+### Example:
+
+* Create a collection for each network found in a TV Shows library
+
+```yaml
+templates:
+ network collection:
+ smart_filter:
+ sort_by: critic_rating.desc
+ all:
+ network: <>
+dynamic_collections:
+ Networks: # mapping name does not matter just needs to be unique
+ type: network
+ title_format: <>
+ template: network collection
+```
+
+## Mood
+
+Create a collection for each artist mood found in the library.
+
+
+
+ type |
+ mood |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Mood |
+
+
+ Key Names |
+ Mood |
+
+
+ Default title_format |
+ Most Played <<value>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 10
+ sort_by: plays.desc
+ any:
+ artist_mood: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for the top 20 artists for each mood found in the Music library
+* Amend the template to increase the limit from 10 to 20
+* Name the collection "Top 20 [Mood] Artists"
+
+```yaml
+templates:
+ mood collection:
+ smart_filter:
+ limit: 20
+ sort_by: plays.desc
+ all:
+ artist_mood: <>
+dynamic_collections:
+ Moods: # mapping name does not matter just needs to be unique
+ type: mood
+ title_format: Top 20 <> Artists
+ template: mood collection
+```
+
+## Album Mood
+
+Create a collection for each album mood found in the library.
+
+
+
+ type |
+ album_mood |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Mood |
+
+
+ Key Names |
+ Mood |
+
+
+ Default title_format |
+ Most Played <<value>> Albums |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 10
+ sort_by: plays.desc
+ any:
+ album_mood: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for the top 20 albums for each mood found in the Music library
+* Amend the template to increase the limit from 10 to 20
+* Name the collection "Top 20 [Mood] Albums"
+
+```yaml
+templates:
+ mood collection:
+ smart_filter:
+ limit: 20
+ sort_by: plays.desc
+ all:
+ album_mood: <>
+dynamic_collections:
+ Moods: # mapping name does not matter just needs to be unique
+ type: album_mood
+ title_format: Top 20 <> Albums
+ template: mood collection
+```
+
+## Track Mood
+
+Create a collection for each track mood found in the library.
+
+
+
+ type |
+ track_mood |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Mood |
+
+
+ Key Names |
+ Mood |
+
+
+ Default title_format |
+ Most Played <<value>> Tracks |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 50
+ sort_by: plays.desc
+ any:
+ track_mood: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for the top 100 tracks for each mood found in the Music library
+* Amend the template to increase the limit from 50 to 100
+* Name the collection "Top 100 [Mood] Tracks"
+
+```yaml
+templates:
+ mood collection:
+ smart_filter:
+ limit: 100
+ sort_by: plays.desc
+ all:
+ track_mood: <>
+dynamic_collections:
+ Moods: # mapping name does not matter just needs to be unique
+ type: track_mood
+ title_format: Top 100 <> Tracks
+ template: mood collection
+```
+
+## Style
+
+Create a collection for each artist style found in the library.
+
+
+
+ type |
+ style |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Style |
+
+
+ Key Names |
+ Style |
+
+
+ Default title_format |
+ Most Played <<key_name>> <<library_type>>s |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 10
+ sort_by: plays.desc
+ any:
+ artist_style: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for the top 10 artists for each style found in the Music library
+* Name the collection "Top [Style] Artists"
+
+```yaml
+templates:
+ style collection:
+ smart_filter:
+ limit: 10
+ sort_by: plays.desc
+ all:
+ artist_style: <>
+dynamic_collections:
+ Styles: # mapping name does not matter just needs to be unique
+ type: style
+ title_format: Top <> <>
+ template: style collection
+```
+
+## Album Style
+
+Create a collection for each album style found in the library.
+
+
+
+ type |
+ album_style |
+
+
+ data |
+ Not Used |
+
+
+ Keys |
+ Style |
+
+
+ Key Names |
+ Style |
+
+
+ Default title_format |
+ Most Played <<key_name>> Albums |
+
+
+ Default Template |
+
+
+```yaml
+default_template:
+ smart_filter:
+ limit: 10
+ sort_by: plays.desc
+ any:
+ album_style: <>
+```
+
+ |
+
+
+
+### Example:
+
+* Create a collection for the top 10 albums for each style found in the Music library
+* Name the collection "Top [Style] Albums"
+
+```yaml
+templates:
+ style collection:
+ builder_level: album
+ smart_filter:
+ limit: 10
+ sort_by: plays.desc
+ all:
+ album_style: <>
+dynamic_collections:
+ Styles: # mapping name does not matter just needs to be unique
+ type: album_style
+ title_format: Top <> Albums
+ template: style collection
+```
+
+## Number
+
+Creates a collection for each number defined.
+
+
+
+ type |
+ number |
+
+
+ data s |
+
+
+
+ Attribute |
+ Description & Values |
+
+
+ starting |
+ Values: Number greater than 0 |
+ Default: 0 |
+
+
+ ending |
+ Values: Number greater than 1 |
+ Default: 1 |
+
+
+ increment |
+ Values: Number greater than 0 |
+ Default: 1 |
+
+
+
+ starting and ending can also have the value current_year
+ - You can also use a value relative to the
current_year by doing current_year-5
+
+ |
+
+
+ Keys |
+ Number |
+
+
+ Key Names |
+ Number |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+ **None** |
+
+
+
+
+### Example:
+
+* Create a collection for the Oscar Winner by Year for the last 5 years
+* Name the collection "Oscars Winners [Number]"
+
+```yaml
+templates:
+ Oscars:
+ summary: Academy Awards (Oscars) Winners for <>
+ imdb_list: https://www.imdb.com/search/title/?release_date=<>-01-01,<>-12-31&groups=oscar_winner&sort=moviemeter,asc
+ sync_mode: sync
+ collection_order: custom
+dynamic_collections:
+ Oscars Winners Awards:
+ type: number
+ sync: true
+ data:
+ starting: current_year-5
+ ending: current_year
+ title_format: Oscars Winners <>
+ template:
+ - Oscars
+```
+
+## Custom
+
+Creates a collection for each custom `key: key_name` pair defined.
+
+
+
+ type |
+ custom |
+
+
+ data s |
+ Strings to iterate |
+
+
+ Keys |
+ key |
+
+
+ Key Names |
+ key_name |
+
+
+ Default title_format |
+ <<key_name>> |
+
+
+ Default Template |
+ None |
+
+
+
+### Example:
+
+* Create a collection for the various Streaming Services
+* Name the collection "[Key Name] Movies"
+
+```yaml
+
+
+templates:
+ streaming:
+ cache_builders: 1
+ smart_label: release.desc
+ sync_mode: sync
+ mdblist_list: https://mdblist.com/lists/plexmetamanager/<>-movies
+ url_poster: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Images/master/streaming/<>.jpg
+
+dynamic_collections:
+ Streaming:
+ type: custom
+ data:
+ all-4: All 4
+ appletv: Apple TV+
+ bet: BET+
+ britbox: BritBox
+ disney: Disney+
+ max: Max
+ hulu: Hulu
+ netflix: Netflix
+ now: NOW
+ paramount: Paramount+
+ peacock: Peacock
+ amazon-prime-video: Prime Video
+ title_format: <> Movies
+ template:
+ - streaming
+ - shared
+```
+
+## Exclude
+
+Exclude this list of `keys` from being created into collections.
+
+For example when making a `genre` dynamic collection definition you can exclude "Horror" from having a collection created from the key.
+
+```yaml
+dynamic_collections:
+ Genres: # mapping name does not matter, just needs to be unique
+ type: genre
+ exclude:
+ - Horror
+```
+
+## Addons
+
+Defines how multiple `keys` can be combined under a parent key.
+
+For example, the `addons` attribute can be used to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into the "MTV" collection.
+
+```yaml
+dynamic_collections:
+ networks:
+ type: network
+ addons:
+ MTV:
+ - MTV2
+ - MTV3
+ - MTV (UK)
+```
+
+You can also define custom keys under addons if the main key doesn't exist as a key it will be considered a custom key combining all keys into one key.
+
+## Template
+
+Name of the template to use for these dynamic collections. Each `type` has its own default template, but if you want to define and use your own template you can.
+
+Each template is passed a few template variables you can use.
+* `value`: The list of keys and addons
+* `key`: The dynamic key
+* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it.
+
+For example, the template below removes the limit on the `smart_filter` so it shows all items in each network
+
+```yaml
+templates:
+ network collection:
+ smart_filter:
+ sort_by: critic_rating.desc
+ all:
+ network: <>
+dynamic_collections:
+ Networks: # mapping name does not matter just needs to be unique
+ type: network
+ title_format: <>
+ template: network collection
+```
+
+## Template Variables
+
+Defines how template variables can be defined by key.
+
+For example, when using `type: tmdb_collection` and you want to define a poster url for some collections
+
+```yaml
+templates:
+ my_template:
+ optional:
+ - my_collection_poster
+ tmdb_collection_details: <>
+ collection_order: release
+ url_poster: <>
+dynamic_collections:
+ TMDb Collections: # This name is the mapping name
+ type: tmdb_collection
+ remove_suffix: "Collection"
+ template: my_template
+ template_variables:
+ my_collection_poster:
+ 119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg
+ 531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg
+```
+
+## Other Template
+
+Name of the template to use for the other collection. Will use the same template as the rest of the dynamic collections unless specified.
+
+Each template is passed a few template variables you can use.
+* `value`: The list of keys and addons
+* `key`: The dynamic key
+* `key_name`: The key after `key_name_override`, `remove_prefix`, or `remove_suffix` are run on it.
+* `included_keys`: The list of included keys
+* `used_keys`: The list of all keys used (included_keys and their addon keys)
+
+## Remove Prefix/Suffix
+
+Removes the defined prefixes/suffixes from the key before it’s used in the collection title.
+
+For example, when using `type: tmdb_collection` you may not want every collection title to end with `Collection`
+
+```yaml
+dynamic_collections:
+ TMDb Collections: # This name is the mapping name
+ type: tmdb_collection
+ remove_suffix: "Collection"
+```
+
+## Title Format
+
+This is the format for the collection titles.
+
+there are two special tags you can include in the `title_format`
+* `<>` is required and is what will be replaced by the dynamic key name.
+* `<>` will be replaced with either Movie, Show, or Artist depending on your library type.
+
+Here's an example using `title_format`.
+
+```yaml
+dynamic_collections:
+ Genres: # mapping name does not matter just needs to be unique
+ type: genre
+ title_format: Top 50 <> <>s
+```
+
+## Key Name Override
+
+Defines how key names can be overridden before they are formatted into collection titles.
+
+This example uses the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France"
+ * This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections.
+
+```yaml
+dynamic_collections:
+ Countries: # mapping name does not matter, just needs to be unique
+ type: country
+ title_format: <> Cinema
+ key_name_override:
+ France: French
+```
+
+## Title Override
+
+Defines how collection titles can be overridden ignoring title formatting.
+
+Here's an example using `title_override` that will override the TMDb Star Wars collection which has an TMDb ID of `10` with `Star Wars Universe.
+
+```yaml
+dynamic_collections:
+ TMDb Collections: # mapping name does not matter, just needs to be unique
+ type: tmdb_collection
+ remove_suffix: "Collection"
+ title_override:
+ 10: Star Wars Universe
+```
+
+## Custom Keys
+
+Defines if custom keys are allowed. Can be `true` or `false`. Defaults to `true`.
+
+Here's an example using `custom_keys`.
+
+```yaml
+dynamic_collections:
+ TMDb Collections: # mapping name does not matter, just needs to be unique
+ type: tmdb_collection
+ remove_suffix: "Collection"
+ custom_keys: false
+```
+
+## Test
+
+Will add `test: true` to all collections for test runs.
+
+Here's an example using `test`.
+
+```yaml
+dynamic_collections:
+ Genres: # mapping name does not matter just needs to be unique
+ type: genre
+ test: true
+```
+
+## Sync
+
+Will remove dynamic collections that are no longer in the creation list.
+
+The mapping name is added as a label to any collection created using dynamic and because of this when `sync` is true all collections with that label not found in this run will be deleted.
+
+Here's an example using `sync`.
+
+```yaml
+dynamic_collections:
+ Trakt Liked Lists: # mapping name does not matter just needs to be unique
+ type: trakt_liked_lists
+ sync: true
+```
+
+## Include
+
+Define a list of keys to be made into collections.
+
+This cannot be used with `exclude`.
+
+Here's an example using `include`.
+
+```yaml
+dynamic_collections:
+ Genres: # mapping name does not matter just needs to be unique
+ type: genre
+ include:
+ - Action
+ - Adventure
+ - Animation
+ - Comedy
+ - Family
+ - Fantasy
+ - Horror
+ - Romance
+ - Science Fiction
+ - War
+```
+
+## Other Name
+
+Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection.
+
+This is the main reason to use `include`. It allows a catch all collection for everything not defined in the config file.
+
+Here's an example using `other_name`.
+
+```yaml
+dynamic_collections:
+ Genres: # mapping name does not matter just needs to be unique
+ type: genre
+ other_name: Top Other Movies
+ include:
+ - Action
+ - Adventure
+ - Animation
+ - Comedy
+ - Family
+ - Fantasy
+ - Horror
+ - Romance
+ - Science Fiction
+ - War
+```
diff --git a/docs/metadata/metadata.md b/docs/metadata/metadata.md
index 0fae4587..cec33135 100644
--- a/docs/metadata/metadata.md
+++ b/docs/metadata/metadata.md
@@ -44,7 +44,7 @@ There are multiple types of attributes that can be utilized within a collection:
* [Builders](builders.md)
* [Settings/Updates](update.md)
-* [Filters]filters.md)
+* [Filters](filters.md)
### Example
diff --git a/docs/metadata/overlay.md b/docs/metadata/overlay.md
index 30c96070..31b1769f 100644
--- a/docs/metadata/overlay.md
+++ b/docs/metadata/overlay.md
@@ -8,7 +8,9 @@ All overlay coordinates assume 1000 x 1500 for Posters and 1920 x 1080 for Backg
**To remove all overlays add `remove_overlays: true` to the `overlay_path` [Libraries Attribute](../config/libraries.md#remove-overlays).**
-**IMPORTANT NOTE ON OVERLAYS:** Once you have applied overlays to your posters in Plex, it is highly recommended that you never change artwork on a thing directly in Plex again. PMM uses labels on the items in Plex to decide if an overlay has been applied, so if you change artwork behind PMM's back things can become confused and items can end up with double-overlaid posters. It's recommended to set new artwork using the asset directory, which will ensure that this doesn't happen.
+???+ danger "Important Notice"
+
+ Once you have applied overlays to your posters in Plex, it is highly recommended that you never change artwork on a thing directly in Plex again. PMM uses labels on the items in Plex to decide if an overlay has been applied, so if you change artwork behind PMM's back things can become confused and items can end up with double-overlaid posters. It's recommended to set new artwork using the asset directory, which will ensure that this doesn't happen.
**To change a single overlay original image either remove the `Overlay` shared label and update the Image in Plex or replace the image in the assets folder and then PMM will overlay the new image**
@@ -42,7 +44,7 @@ There are multiple types of attributes that can be utilized within an overlay:
* [Builders](builders.md)
* [Settings/Updates](update.md)
-* [Filters]filters.md)
+* [Filters](filters.md)
## Overlay
diff --git a/docs/metadata/playlist.md b/docs/metadata/playlist.md
index 4fd07a11..0091a296 100644
--- a/docs/metadata/playlist.md
+++ b/docs/metadata/playlist.md
@@ -4,7 +4,9 @@ Playlist files are used to create and maintain playlists on the Plex Server.
If utilized to their fullest, these files can be used to maintain the entire server's collections and playlists, and can be used as a backup for these in the event of a restore requirement.
-Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../config/playlists.md) within the Configuration File.
+???+ tip
+
+ Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../config/playlists.md) within the Configuration File.
You can use the [`playlist_report` setting](../config/settings.md#playlist-report) to get a list of your playlists printed out in your log.
@@ -40,7 +42,7 @@ There are multiple types of attributes that can be utilized within a playlist:
* [Builders](builders.md)
* [Settings/Updates](update.md)
-* [Filters]filters.md)
+* [Filters](filters.md)
### Special Playlist Attributes
diff --git a/docs/metadata/templates.md b/docs/metadata/templates.md
index 7011fe1b..502e741c 100644
--- a/docs/metadata/templates.md
+++ b/docs/metadata/templates.md
@@ -84,7 +84,7 @@ collections:
Note that we provide the template name `Actor` and the value to insert in the place of `<>`. The `<>` is a template variable that is always available and doesn't have to be called out like `<>`.
-Inside a template, you can use all the Builders, Details, and [Filters]filters.md) attributes that you can give collections/playlists [except `template`; templates cannot be nested].
+Inside a template, you can use all the Builders, Details, and [Filters](filters.md) attributes that you can give collections/playlists [except `template`; templates cannot be nested].
The names of template variables that you define are arbitrary. In the example above, `<>` could have been `<>` or `<>` or anything else. The only thing that matters is that in the template definition you surround them with `<< >>` and in the collection definition you spell it correctly.
diff --git a/docs/pmm/essentials/scripts/overlay-reset.md b/docs/pmm/essentials/scripts/overlay-reset.md
index a5b83f6b..d0c92020 100644
--- a/docs/pmm/essentials/scripts/overlay-reset.md
+++ b/docs/pmm/essentials/scripts/overlay-reset.md
@@ -105,7 +105,7 @@ Each option can be applied in three ways:
| TMDb V3 API Key | TMDb V3 API Key for restoring posters from TMDb.
**Shell Command:** `-ta` or `--tmdbapi 123456789123456789`
**Environment Variable:** `TMDBAPI=123456789123456789` | :fontawesome-solid-circle-xmark:{ .red } |
| Start From | Plex Item Title to Start restoring posters from.
**Shell Command:** `-st` or `--start "Mad Max"`
**Environment Variable:** `START=Mad Max` | :fontawesome-solid-circle-xmark:{ .red } |
| Items | Restore specific Plex Items by Title. Can use a bar-separated (|
) list.
**Shell Command:** `-it` or --items "Mad Max|Mad Max 2"
**Environment Variable:** ITEMS=Mad Max|Mad Max 2
| :fontawesome-solid-circle-xmark:{ .red } |
-| Timeout | Timeout can be any number greater then 0. **Default:** `600`
**Shell Command:** `-ti` or `--timeout 1000`
**Environment Variable:** `TIMEOUT=1000` | :fontawesome-solid-circle-xmark:{ .red } |
+| Timeout | Timeout can be any number greater than 0. **Default:** `600`
**Shell Command:** `-ti` or `--timeout 1000`
**Environment Variable:** `TIMEOUT=1000` | :fontawesome-solid-circle-xmark:{ .red } |
| Dry Run | Run as a Dry Run without making changes in Plex.
**Shell Command:** `-d` or `--dry`
**Environment Variable:** `DRY_RUN=True` | :fontawesome-solid-circle-xmark:{ .red } |
| Flat Assets | PMM Asset Folder uses [Flat Assets Image Paths](../../install/guides/assets.md#asset-naming).
**Shell Command:** `-f` or `--flat`
**Environment Variable:** `PMM_FLAT=True` | :fontawesome-solid-circle-xmark:{ .red } |
| Reset Season Posters | Restore Season posters during run.
**Shell Command:** `-s` or `--season`
**Environment Variable:** `SEASON=True` | :fontawesome-solid-circle-xmark:{ .red } |
diff --git a/mkdocs.yml b/mkdocs.yml
index 5bcc8bf1..4a8e61f8 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -381,43 +381,42 @@ nav:
- MyAnimeList ID: builders/myanimelist/#myanimelist-id
- MyAnimeList UserList: builders/myanimelist/#myanimelist-userlist
- MyAnimeList Seasonal: builders/myanimelist/#myanimelist-seasonal
- - "DYNAMIC COLLECTIONS":
+ - DYNAMIC COLLECTIONS:
- Overview: metadata/dynamic.md
- - Dynamic Collection Builders:
- - TMDb Dynamic Collections:
- - TMDb Collection: metadata/dynamic/#tmdb-collection
- - TMDb Popular People: metadata/dynamic/#tmdb-popular-people
- - Original Language: metadata/dynamic/#original-language
- - Origin Country: metadata/dynamic/#origin-country
- - Trakt Dynamic Collections:
- - Trakt User Lists: metadata/dynamic/#trakt-user-lists
- - Trakt Liked Lists: metadata/dynamic/#trakt-liked-lists
- - Trakt People Lists: metadata/dynamic/#trakt-people-lists
- - Plex Dynamic Collections:
- - Actor: metadata/dynamic/#actor
- - Director: metadata/dynamic/#director
- - Writer: metadata/dynamic/#writer
- - Producer: metadata/dynamic/#producer
- - Genre: metadata/dynamic/#genre
- - Album Genre: metadata/dynamic/#album-genre
- - Content Rating: metadata/dynamic/#content-rating
- - Year: metadata/dynamic/#year
- - Decade: metadata/dynamic/#decade
- - Country: metadata/dynamic/#country
- - Resolution: metadata/dynamic/#resolution
- - Subtitle Language: metadata/dynamic/#subtitle-language
- - Audio Language: metadata/dynamic/#audio-language
- - Studio: metadata/dynamic/#studio
- - Edition: metadata/dynamic/#edition
- - Network: metadata/dynamic/#network
- - Mood: metadata/dynamic/#mood
- - Album Mood: metadata/dynamic/#album-mood
- - Track Mood: metadata/dynamic/#track-mood
- - Style: metadata/dynamic/#style
- - Album Style: metadata/dynamic/#album-style
- - Other Dynamic Collections:
- - Number: metadata/dynamic/#number
- - Custom: metadata/dynamic/#custom
+ - TMDb Dynamic Collections:
+ - TMDb Collection: metadata/dynamic_types/#tmdb-collection
+ - TMDb Popular People: metadata/dynamic_types/#tmdb-popular-people
+ - Original Language: metadata/dynamic_types/#original-language
+ - Origin Country: metadata/dynamic_types/#origin-country
+ - Trakt Dynamic Collections:
+ - Trakt User Lists: metadata/dynamic_types/#trakt-user-lists
+ - Trakt Liked Lists: metadata/dynamic_types/#trakt-liked-lists
+ - Trakt People Lists: metadata/dynamic_types/#trakt-people-lists
+ - Plex Dynamic Collections:
+ - Actor: metadata/dynamic_types/#actor
+ - Director: metadata/dynamic_types/#director
+ - Writer: metadata/dynamic_types/#writer
+ - Producer: metadata/dynamic_types/#producer
+ - Genre: metadata/dynamic_types/#genre
+ - Album Genre: metadata/dynamic_types/#album-genre
+ - Content Rating: metadata/dynamic_types/#content-rating
+ - Year: metadata/dynamic_types/#year
+ - Decade: metadata/dynamic_types/#decade
+ - Country: metadata/dynamic_types/#country
+ - Resolution: metadata/dynamic_types/#resolution
+ - Subtitle Language: metadata/dynamic_types/#subtitle-language
+ - Audio Language: metadata/dynamic_types/#audio-language
+ - Studio: metadata/dynamic_types/#studio
+ - Edition: metadata/dynamic_types/#edition
+ - Network: metadata/dynamic_types/#network
+ - Mood: metadata/dynamic_types/#mood
+ - Album Mood: metadata/dynamic_types/#album-mood
+ - Track Mood: metadata/dynamic_types/#track-mood
+ - Style: metadata/dynamic_types/#style
+ - Album Style: metadata/dynamic_types/#album-style
+ - Other Dynamic Collections:
+ - Number: metadata/dynamic_types/#number
+ - Custom: metadata/dynamic_types/#custom
- SETTINGS & UPDATES:
- Overview: metadata/update.md
- Settings: