[64] Huge Wiki Update

pull/1793/head
meisnate12 11 months ago
parent 1e47bdd278
commit 38602542fc

@ -8,7 +8,7 @@ body:
attributes:
value: >
**THIS IS NOT THE PLACE TO ASK FOR SUPPORT OR FEATURE REQUESTS!**
Please use [Plex Meta Manager Discord](https://discord.gg/gYU8wATxKw) and post your question under the `pmm-help` channel for support issues.
Please use [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) and post your question under the `pmm-help` channel for support issues.
Please use [Plex Meta Manager Features](https://features.metamanager.wiki/) to request and upvote features.
- type: input
id: version

@ -9,7 +9,7 @@ body:
attributes:
value: >
**THIS IS NOT THE PLACE TO ASK FOR SUPPORT OR FEATURE REQUESTS!**
Please use [Plex Meta Manager Discord](https://discord.gg/gYU8wATxKw) and post your question under the `pmm-support` channel for support issues.
Please use [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) and post your question under the `pmm-support` channel for support issues.
Please use [Plex Meta Manager Features](https://features.metamanager.wiki/) to request and upvote features.
- type: input
id: file

@ -8,7 +8,7 @@ body:
attributes:
value: >
**THIS IS NOT THE PLACE TO ASK FOR SUPPORT OR FEATURE REQUESTS!**
Please use [Plex Meta Manager Discord](https://discord.gg/gYU8wATxKw) and post your question under the `pmm-support` channel for support issues.
Please use [Plex Meta Manager Discord](https://metamanager.wiki/en/latest/discord/) and post your question under the `pmm-support` channel for support issues.
Please use [Plex Meta Manager Features](https://features.metamanager.wiki/) to request and upvote features.
- type: textarea
attributes:

@ -7,5 +7,5 @@ contact_links:
url: https://metamanager.wiki
about: Please check the wiki to see if your question has already been answered.
- name: Discord
url: https://discord.gg/gYU8wATxKw
url: https://metamanager.wiki/en/latest/discord/
about: Please use the Plex Meta Manager Discord to ask for support.

@ -1,4 +1,4 @@
# <img src="https://metamanager.wiki/en/latest/_static/logo-full.png" alt="PMM">
# <img src="https://metamanager.wiki/en/latest/assets/logo-full.webp" alt="PMM">
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/meisnate12/Plex-Meta-Manager?style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/releases)
[![Docker Image Version (latest semver)](https://img.shields.io/docker/v/meisnate12/plex-meta-manager?label=docker&sort=semver&style=plastic)](https://hub.docker.com/r/meisnate12/plex-meta-manager)
@ -6,7 +6,7 @@
[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop)
[![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly)
[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://discord.gg/gYU8wATxKw)
[![Discord](https://img.shields.io/discord/822460010649878528?color=%2300bc8c&label=Discord&style=plastic)](https://metamanager.wiki/en/latest/discord/)
[![Reddit](https://img.shields.io/reddit/subreddit-subscribers/PlexMetaManager?color=%2300bc8c&label=r%2FPlexMetaManager&style=plastic)](https://www.reddit.com/r/PlexMetaManager/)
[![Wiki](https://img.shields.io/readthedocs/plex-meta-manager?color=%2300bc8c&style=plastic)](https://metamanager.wiki)
[![Translations](https://img.shields.io/weblate/progress/plex-meta-manager?color=00bc8c&server=https%3A%2F%2Ftranslations.metamanager.wiki&style=plastic)](https://translations.metamanager.wiki/projects/plex-meta-manager/#languages)
@ -14,79 +14,106 @@
[![Sponsor or Donate](https://img.shields.io/badge/-Sponsor%2FDonate-blueviolet?style=plastic)](https://github.com/sponsors/meisnate12)
[![Feature Requests](https://img.shields.io/badge/Feature%20Requests-blueviolet?style=plastic)](https://features.metamanager.wiki/)
Plex Meta Manager is an open source Python 3 project that has been designed to ease the creation and maintenance of metadata, collections, and playlists within a Plex Media Server. The script is designed to be run continuously and be able to update information based on sources outside your plex environment. Plex Meta Manager supports Movie/TV/Music libraries and Playlists.
Plex Meta Manager is a powerful tool designed to give you complete control over your media libraries. With Plex Meta Manager, you can take your customization to the next level, with granular control over metadata, collections, overlays, and much more.
Transform your media library with Plex Meta Manager and discover its full potential! Connect to third-party services like TMDb, Trakt, and IMDb, among others, to create one-of-a-kind collections, overlays and more. Your media library will stand out and be tailored to your specific needs.
## What Can Plex-Meta-Manager Do?
Plex Meta Manager can
### Overhaul Your Media Libraries
- Elevate your library with beautifully crafted metadata - customize artwork, titles, summaries, and more to create a stunning library.
### PMM Defaults
- Take advantage of pre-made modular Collections & Overlays to reduce the manual effort and get to the good stuff with less effort!
### Third-Party Integrations
- Harness the power of Trakt, TMDb, IMDb, Flixpatrol and more to create collections and overlays!
- Integrate with Sonarr and Radarr to automate your library growth.
### And More!
1. Create and maintain collections in Plex libraries using external lists, Plex searches, or filters.
- We're constantly working on new features to take your library management experience to the next level.
- Consider sponsoring the project to allow us to continue building great features for you!
2. Create, maintain, and share playlists on Plex servers using the same or similar criteria.
## Example Plex Meta Manager Libraries
3. Manage metadata [artwork, titles, summaries, release year, etc.] for anything on your Plex server.
Here are some examples of the things you can achieve using Plex Meta Manager!
4. Add overlays to item artwork to display various details [ratings, resolution, edition, etc.].
**Example Movie Collections using the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/collections/)** (click to enlarge):
5. Send missing items from external lists [for example the IMDB 250] to Radarr or Sonarr for download.
![Movie Collection Preview](https://metamanager.wiki/en/latest/images/movie-collection-preview.png)
6. and more.
**Example Show Overlays using the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/collections/overlays)** (click to enlarge):
![Show Library Preview](https://metamanager.wiki/en/latest/images/show-library-preview.png)
## Plex Meta Manager Defaults
Want your library to look like the above images? With the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide/) you can! These powerful and modular files were designed by the Plex Meta Manager team to make it simple to create a personalized, one-of-a-kind media collection without the hassle of manually defining each one.
Want to see what the community has to offer? Check out the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository on GitHub to see user-submitted configuration files, or even add your own to the mix!
With Plex Meta Manager, you can also manage metadata for all your media types, from movies and shows to music and more. And since your metadata is managed outside your libraries, you'll never have to worry about losing your customizations in the event of a media server database loss, you can simply reapply them! It is also easy to move your customizations between servers if you need to.
## Getting Started
These are the high-level steps you must take to get Plex Meta Manager up and running:
To get started with Plex Meta Manager, follow these simple steps:
1. Install Plex Meta Manager on your device. You can find the installation instructions for a variety of platforms [here](https://metamanager.wiki/en/latest/pmm/install/overview/).
2. Once you have installed Plex Meta Manager, create your [Configuration File](https://metamanager.wiki/en/latest/config/overview/). This file contains important information such as URLs and credentials needed to connect to services like Plex and TMDb
1. Install Plex Meta Manager; this process is described [here](https://metamanager.wiki/en/latest/home/installation.html).
3. After creating the Configuration File, you can start updating Metadata and building automatic Collections by creating a [Collection File](https://metamanager.wiki/en/latest/files/collections/) for each Library you want to work with. If you'd rather use some of our pre-made Collection Files, take a look at the [Plex Meta Manager Defaults](https://metamanager.wiki/en/latest/defaults/guide/)
2. Once installed, you have to create a [Configuration File](https://metamanager.wiki/en/latest/config/configuration.html), which contains URLs and credentials and the like which are used to connect to services like Plex and TMDb.
4. Finally, check out the [Wiki](https://metamanager.wiki/), you'll find new and exciting ways to truly unlock the potential of your libraries.
3. After that you can start updating Metadata and building automatic Collections by creating a [Metadata File](https://metamanager.wiki/en/latest/metadata/metadata.html) for each Library you want to interact with.
## Step-by-Step Guides
4. After that, explore the [Wiki](https://metamanager.wiki/) to see all the different Collection Builders that can be used to create collections.
If you're a beginner to the concepts of Python, Git and/or Plex Meta Manager and find the above steps challenging, don't worry. We've got some step-by-step guides that can help you get started. These guides will take you through the process of installing Plex Meta Manager, creating your Configuration File and getting some basic Collections up and running.
## Walkthroughs
For those who need full installation walkthroughs, please refer to the following walkthrough guides:
If you find steps 1-3 above daunting, there are some walkthroughs available that will take you through those three steps: getting Plex Meta Manager installed, creating a config file, and creating a couple collections to show how the process works.
* [Local Walkthrough](https://metamanager.wiki/en/latest/pmm/install/local/) - follow this if you are running the script directly on Windows, OS X, or Linux
* [Docker Walkthrough](https://metamanager.wiki/en/latest/pmm/install/docker/) - this discusses using Docker at the command line
1. The [Local Walkthrough](https://metamanager.wiki/en/latest/home/guides/local.html) covers installing the script natively [not in docker] on your local computer or a remote server.
2. The [Docker Walkthrough](https://metamanager.wiki/en/latest/home/guides/docker.html) covers the same thing, running the script via Docker.
3. The [unRAID Walkthrough](https://metamanager.wiki/en/latest/home/guides/unraid.html) gets you started configuring the script in UNRaid. It doesn't go through the same steps with regard to creating the config file and metadata file, so you may want to go through the [Docker Walkthrough](https://metamanager.wiki/en/latest/home/guides/docker.html) first on your computer to gain that understanding.
If you are using unRAID, Kubernetes, QNAP, or Synology refer to the following basic guide to Docker container setup for each system:
**this doesn't cover the PMM setup specifics found in the guides above with regard to creating the config file and collection file, so you may want to go through the [Docker Walkthrough](https://metamanager.wiki/en/latest/pmm/install/docker/) first on your computer to gain that understanding.**
* [unRAID Walkthrough](https://metamanager.wiki/en/latest/pmm/install/unraid/)
* [Kubernetes Walkthrough](https://metamanager.wiki/en/latest/pmm/install/kubernetes/)
* [QNAP Walkthrough](https://metamanager.wiki/en/latest/pmm/install/qnap/)
* [Synology Walkthrough](https://metamanager.wiki/en/latest/pmm/install/synology/)
## Example Usage
Plex Meta Manager gives the user the power to curate a set of Collections to make discovering and organizing media easy. They can be built either using plex-based searches/filters, or by using popular builders such as TMDb, IMDb, Trakt, MDBList, MyAnimeList and many more.
Plex Meta Manager puts you in control of your media library by letting you create custom Collections that make discovering and organizing your content a breeze. With powerful search and filtering options, you can build Collections based on popular builders like TMDb, IMDb, Trakt, and many more.
Some example collections that can be created are:
* Trending/Popular (based on TMDb, IMDb, Trakt, etc.)
* Streaming Service (such as Netflix, Disney+, etc.)
Imagine having Collections like these at your fingertips:
* Trending and Popular (based on TMDb, IMDb, Trakt, etc.)
* Streaming Services (like Netflix, Disney+, and more)
* Networks
* Studios
* Genres
* Actors
* Decades
Below are some user-curated collections which have been created by Plex Meta Manager using the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide.html).
### Example Movie Collection
![Movie Collection Preview](https://metamanager.wiki/en/latest/_images/movie-collection-preview.png)
Plex Meta Manager gives you endless possibilities to curate and organize your media library any way you want. Create custom Collections and Overlays that fit your unique preferences and make discovering your content effortless.
### Example Movie Overlays
![Movie Library Preview](https://metamanager.wiki/en/latest/_images/movie-library-preview.png)
### Example Show Collection
![Show Collection Preview](https://metamanager.wiki/en/latest/_images/show-collection-preview.png)
### Example Show Overlays
![Show Library Preview](https://metamanager.wiki/en/latest/_images/show-collection-preview.png)
But if you don't want to spend time manually creating Collections and Overlays, we've got you covered. Check out the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide/) - a handcrafted selection of tried-and-tested Collections and Overlays made by the Plex Meta Manager team.
## Develop & Nightly Branches
Develop and Nightly branches are deemed as "beta" branches which are updated far more frequently than the master branch. Bug fixes, new features and any other code added to Plex Meta Manager first goes to the nightly branch, followed by the develop branch, before finally being released to the master branch.
The Develop and Nightly branches are "beta" versions of Plex Meta Manager that are updated more frequently than the stable version (Master branch). These branches are where bug fixes, new features, and other changes are added before being released to the Master branch.
These branches (particularly the nightly branch) are only recommended for those who have a technical knowledge of Plex Meta Manager, and are happy with having to frequently update to receive the latest changes, and accept the risk that these branches may suffer breakages at any point.
However, these branches (especially Nightly) are recommended for more technical users who don't mind updating frequently to get the latest changes. Keep in mind that these beta branches may have bugs or other issues that could cause problems with Plex Meta Manager or your media server. So, if you're not comfortable with technical issues, it's best to stick with the Master branch.
<details class="details-tabs">
<summary>Develop Branch - Click to Expand</summary>
<summary>Develop Branch (click to expand)</summary>
[![Develop GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/develop?label=Commits%20in%20Develop&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/develop)
@ -117,7 +144,7 @@ If switching to the develop branch, it is recommended to also use the [develop b
<br>
<details class="details-tabs">
<summary>Nightly Branch - Click to Expand</summary>
<summary>Nightly Branch (click to expand)</summary>
[![Nightly GitHub commits since latest stable release (by SemVer)](https://img.shields.io/github/commits-since/meisnate12/plex-meta-manager/latest/nightly?label=Commits%20in%20Nightly&style=plastic)](https://github.com/meisnate12/Plex-Meta-Manager/tree/nightly)
@ -144,28 +171,27 @@ git checkout master
```
````
As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw).
As this branch is subject to extreme change, there is no promise of the feature being documented in the [nightly](https://metamanager.wiki/en/nightly/) branch of the wiki and all discussions relating to changes made in the nightly branch will be held within the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/).
</details>
## Defaults and User Metadata/Overlay Files
The overlays and collection built in the images above can be easily added to any plex by using the [PMM Defaults](https://metamanager.wiki/en/latest/defaults/guide.html). These Files were created by the PMM team to make it easier than ever to have customized collections and overlays.
To see user submitted Metadata configuration files, and you to even add your own, go to the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs).
Plex Meta Manager can manage the metadata fields for movies, shows, seasons, episodes, artists, albums, tracks, and collections, which can allow you to have a full backup of your customizations in case of a database loss.
## Discord Support Server
Before posting on GitHub about an enhancement, error, or configuration question please visit the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw). we have a dedicated support thread system so that your query can be dealt with efficiently by our team and community.
If you're looking for support for any questions or issues you might have, or if you just want to be a part of our growing community, Join the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/).
## Feature Requests
If you have an idea for how to enhance Plex Meta Manager or just want to vote on what should be added next please visit the [Feature Request](https://features.metamanager.wiki/features) Page.
At Plex Meta Manager, we value our community's input and actively seek feedback to drive the evolution of our product. We want to hear your ideas on how to enhance Plex Meta Manager, and we encourage you to visit our [Feature Request](https://features.metamanager.wiki/features) page to share your thoughts or vote on what features you would like to see added next. Your voice matters and helps shape the future of Plex Meta Manager, so please don't hesitate to join in the conversation and be a part of our community-driven development process.
## Errors and Configuration Questions
If you are unable to use the [Plex Meta Manager Discord Server](https://discord.gg/gYU8wATxKw), please follow this guidance:
* If you're getting an Error please update to the latest version and then open a [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) if the error persists.
* If you see a mistake/typo with the [Plex Meta Manager Wiki](https://metamanager.wiki/) or have an idea of how we can improve it please open a [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+)
* If you have a metadata configuration query please post in the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions).
If you're having trouble, we recommend first joining the [Plex Meta Manager Discord Server](https://metamanager.wiki/en/latest/discord/) and seeking support there. If that isn't possible for you, here's what you can do:
* If you get an error, update to the latest version and check if the issue persists. If it does, report the bug by filling out the [Bug Report](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+bug&template=bug_report.md&title=Bug%3A+) template.
* If you spot a mistake or have an idea to improve the [Plex Meta Manager Wiki](https://metamanager.wiki/), submit a request using the [Wiki Request](https://github.com/meisnate12/Plex-Meta-Manager/issues/new?assignees=meisnate12&labels=status%3Anot-yet-viewed%2C+documentation&template=3.docs_request.yml&title=%5BDocs%5D%3A+) template.
* If you have a question about metadata configuration, start a discussion on the [Discussions](https://github.com/meisnate12/Plex-Meta-Manager/discussions). Remember, the community helps shape the future of Plex Meta Manager, so your input is valuable!
For support on any of the above, visit the [Discord server](https://metamanager.wiki/en/latest/discord/).
## Contributing
* Pull Requests are greatly encouraged, please submit all Pull Requests to the nightly branch.

@ -1 +1 @@
1.19.1-develop63
1.19.1-develop64

@ -47,7 +47,7 @@ dynamic_collections:
- 12
- 16
- 18
- BJPM
- BPjM
addons:
0:
- de/0
@ -132,6 +132,6 @@ dynamic_collections:
- NC-17
- R+ - Mild Nudity
- Rx - Hentai
BJPM:
BPjM:
- de/BPjM Restricted
- BPjM Restricted

@ -0,0 +1,145 @@
##############################################################################
# DE Content Rating Collections #
# Created by Yozora, Bullmoose20, & Sohjiro #
# EDITING THIS FILE MAY CAUSE PULLING NEW UPDATES TO FAIL #
# https://metamanager.wiki/en/latest/defaults/both/content_rating_de.html #
##############################################################################
external_templates:
pmm: templates
template_variables:
collection_section: "110"
collections:
Ratings Collections:
template:
- name: separator
separator: content_rating
key_name: Ratings
translation_key: separator
dynamic_collections:
DE Content Rating:
type: content_rating
title_format: <<key_name>> <<library_typeU>>s
other_name: Not Rated <<library_typeU>>s
template:
- smart_filter
- shared
other_template:
- other_collection
- smart_filter
- shared
template_variables:
search_term:
default: content_rating
image:
default: content_rating/de/<<key_name>>
other: content_rating/de/NR
translation_key:
default: content_rating
other: content_rating_other
dynamic:
default: true
include:
- "0"
- 6
- 12
- 16
- 18
<<<<<<< HEAD
- BPjM
=======
- BPJM
>>>>>>> bullmoose20/patch-17
addons:
0:
- de/0
- U
- 1
- 2
- 3
- 4
- 5
- "01"
- "02"
- "03"
- "04"
- "05"
- G
- TV-G
- TV-Y
- G - All Ages
- gb/U
- gb/0+
- E
- gb/E
- A
- no/A
- no/5
- no/05
6:
- de/6
- gb/9+
- TV-PG
- TV-Y7
- TV-Y7-FV
- PG
- 7
- 8
- 9
- 10
- 11
- "07"
- "08"
- "09"
- PG - Children
- no/6
- no/06
- no/7
- no/07
- no/9
- no/09
- no/10
- no/11
12:
- de/12
- gb/12
- no/12
- gb/15
- gb/14+
- TV-14
- 13
- 14
- 15
- PG-13 - Teens 13 or older
- PG-13
- no/15
16:
- de/16
- no/16
- A-17
- TVMA
- TV-MA
- R
- 17
- M/PG
18:
- de/18
- gb/18
- M
- no/18
- R18
- gb/R18
- gb/X
- X
- NC-17
- R+ - Mild Nudity
- Rx - Hentai
<<<<<<< HEAD
BPjM:
=======
BPJM:
>>>>>>> bullmoose20/patch-17
- de/BPjM Restricted
- BPjM Restricted

Before

Width:  |  Height:  |  Size: 5.0 MiB

After

Width:  |  Height:  |  Size: 5.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

@ -1,55 +0,0 @@
---
search:
boost: 3
---
# Definition Settings
All the following attributes serve various functions as how the definition functions inside of Plex Meta Manager.
| Attribute | Description & Values |
|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `name` | **Description:** Used to specify the name of the definition in Plex as different than the mapping name.<br>**Values:** Any String |
| `limit` | **Description:** Used to specify the max number of items for the definition<br>**Values:** Number greater than 0 |
| `template` | **Description:** Used to specify a template and template variables to use for this definition. See the [Templates Page](../templates.md) for more information.<br>**Values:** Dictionary |
| `run_again` | **Description:** Used to try and add all the missing items to the definition again after the daily run.<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `sync_mode` | **Description:** Used to change how builders sync with this definition.<br>**Default:** `sync_mode` [settings value](../../config/settings.md) in the Configuration File<br>**Values:**<table class="clearTable"><tr><td>`append`</td><td>Only Add Items to the Collection</td></tr><tr><td>`sync`</td><td>Add & Remove Items from the Collection</td></tr></table> |
| `minimum_items` | **Description:** Minimum items that must be found to add to a definition.<br>**Default:** `minimum_items` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** number greater than 0 |
| `delete_below_minimum` | **Description:** Deletes the definition if below the minimum.<br>**Default:** `delete_below_minimum` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `delete_not_scheduled` | **Description:** Deletes the definition if its skipped because its not scheduled.<br>**Default:** `delete_not_scheduled` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `tmdb_region` | **Description:** Sets the region for `tmdb_popular`, `tmdb_now_playing`, `tmdb_top_rated`, and `tmdb_upcoming` |
| `validate_builders` | **Description:** When set to false the definition will not fail if one builder fails.<br>**Default:** `true`<br>**Values:** `true` or `false` |
| `cache_builders` | **Description:** Caches the items found by the builders for a number of days. This is useful if you run the same configuration on multiple libraries/servers in one run just set the value to `1`.<br>**Default:** `0` <br>**Values:** number 0 or greater |
| `blank_collection` | **Description:** When set to true the collection will be created with no builders and no items added.<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `build_collection` | **Description:** When set to false the collection won't be created but items can still be added to Radarr/Sonarr. Does not work for playlists.<br>**Default:** `true`<br>**Values:** `true` or `false` |
| `server_preroll` | **Description:** Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras.<br>You can run this with a [schedule](schedule.md) to change the pre-rolls automatically.<br>**Values:** Any String |
| `missing_only_released` | **Description:** definition Level `missing_only_released` toggle.<br>**Default:** `missing_only_released` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `only_filter_missing` | **Description:** definition Level `only_filter_missing` toggle.<br>**Default:** `only_filter_missing` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `show_filtered` | **Description:** definition level `show_filtered` toggle.<br>**Default:** `show_filtered` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `show_missing` | **Description:** definition level `show_missing` toggle.<br>**Default:** `show_missing` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `save_report` | **Description:** definition level `save_report` toggle.<br>**Default:** `save_report` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
| `ignore_ids` | **Description:** definition level `ignore_ids` which is combined with the library and global `ignore_ids`.<br>**Default:** `ignore_ids` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** List or comma-separated String of TMDb/TVDb IDs |
| `ignore_imdb_ids` | **Description:** definition level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`.<br>**Default:** `ignore_imdb_ids` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** List or comma-separated String of IMDb IDs |
| `name_mapping` | **Description:** Used to specify the folder name in the [Image Assets Directory](../../pmm/install/guides/assets.md) i.e. if your definition name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `?`, `*` cannot be in the file path), but you want them in your name you can this to specify the name in the file system.<br>**Values:** Any String |
| `test` | **Description:** When running in Test Mode (`--run-tests` [option](../../pmm/essentials/environmental)) only definitions with `test: true` will be run.<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `changes_webhooks` | **Description:** Used to specify a definition changes webhook for just this definition.<br>**Values:** List of webhooks |
| `sync_to_trakt_list` | **Description:** Used to specify a trakt list you want the definition synced to.<br>**Values:** Trakt List Slug you want to sync to |
| `sync_missing_to_trakt_list` | **Description:** Used to also sync missing items to the Trakt List specified by `sync_to_trakt_list`.<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `run_definition` | **Description:** Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` |
| `default_percent` | **Description:** Used to declare the default percent for `episodes`, `seasons`, `tracks`, and `albums` [special filters](../filters.md#special-filters). Default is 50.<br>**Values:** Integer between 1 and 100 |
| `ignore_blank_results` | **Description:** Used to not have Errors resulting from blank results from builders.<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `only_run_on_create` | **Description:** Used to only run the collection definition if the collection doesn't already exist.<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.<br>**Values:** List of Collection Names to delete |
An example of using `default_percent` which is used in an external yml file and not within config.yml:
```yml
HDR10Plus:
default_percent: 35 #default default_percent is 50
template:
- name: Resolution
weight: 400
opt1: hdr10p
plex_search:
all:
hdr: true
filters:
filepath.regex: 'HDR10\+|HDR10P'

@ -1,124 +0,0 @@
# Schedule Setting
Plex Meta Manager allows you to schedule certain libraries/files so that runs can be tailored to suit your needs.
This is particularly handy for users who have a lot of libraries or run a lot of Metadata/Operations on their libraries.
### IMPORTANT:
These schedules do not trigger PMM to run; they control what PMM will do if it happens to be running at the scheduled time. `weekly(sunday)`, for example, does not mean "run PMM on Sunday to do this thing"; it means "If PMM is running, and it's Sunday, do this thing".
The scheduling options are:
| Name | Description | Format | Example |
|:-------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------|:---------------------------------------------------------------------|
| Hourly | Update only when the script is run in that hour or hour range | hourly(Hour of Day)<br>hourly(Start Hour-End Hour) | `hourly(17)`<br>`hourly(17-04)` |
| Daily | Update once a day | daily | `daily` |
| Weekly | Update once a week on the specified days (For multiple days, use a bar-separated (<code>&#124;</code>) list) | weekly(Days of Week) | `weekly(sunday)`<br><code>weekly(sunday&#124;tuesday)</code> |
| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` |
| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` |
| Range | Updates whenever the date is within the range (For multiple ranges, use a bar-separated (<code>&#124;</code>) list) | range(MM/DD-MM/DD) | `range(12/01-12/31)`<br><code>range(8/01-8/15&#124;9/01-9/15)</code> |
| Never | Never updates | never | `never` |
| Non Existing | Updates if it doesn't exist | non_existing | `non_existing` |
| All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` |
* `daily` is the default when `schedule` is not specified.
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../../pmm/essentials/environmental.md#time-to-run).
* You can have multiple scheduling options as a list.
* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled.
## Examples
Below is an example of a library which has been scheduled to run every Sunday. This will schedule everything within the library (in this case Collection Files and Operations) for the same day.
```yaml
libraries:
Movies:
schedule: weekly(sunday)
collection_files:
- file: config/Movies.yml
- pmm: imdb
- pmm: studio
- pmm: genre
- pmm: actor
operations:
mass_critic_rating_update: tmdb
```
Collection Files, Playlist Files, and Overlay Files can all be individually scheduled, as seen below where different files are scheduled to run on each day of the week:
**Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.**
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
schedule: weekly(monday)
- pmm: imdb
schedule: weekly(tuesday)
- folder: config/Movies/
schedule: weekly(wednesday)
- pmm: genre
schedule: weekly(thursday)
- pmm: actor
schedule: weekly(friday)
overlay_files:
- schedule: weekly(saturday)
- pmm: audio_codec
- pmm: resolution
- pmm: video_format
playlist_files:
- file: config/Playlists.yml
schedule: weekly(sunday)
```
Below is an example of a collection which has been scheduled to run on a Sunday. In this scenario, if you run PMM on a Monday, this collection will be skipped but any other collections which do not have a scheduled defined will be run.
```yaml
collections:
TMDb Trending Weekly:
tmdb_trending_weekly: 30
sync_mode: sync
schedule: weekly(sunday)
TMDb Top Rated:
tmdb_top_rated: 30
sync_mode: sync
schedule:
- monthly(1)
- monthly(15)
```
You can also schedule items to be "pinned" to your home screen on a schedule. For example, this collection will be pinned to your home screen for the month of December and on January 1st will no longer be pinned (you must run PMM on 1st January for the removal of the pin to happen)
```yaml
collections:
Christmas Movies:
imdb_list: https://www.imdb.com/list/ls000096828/
sync_mode: sync
visible_home: range(12/01-12/31)
```
Whilst it isn't possible to schedule individual Operations, you can create additional placeholder library names and point them to the original library using `library_name`. This can be used to achieve individually scheduled operations, as seen below:
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
Movies Operations (Monday): # Name doesn't matter
library_name: Movies # Must match your library name in Plex
schedule: weekly(monday)
operations:
mass_user_rating_update: imdb
Movies Operations (Wednesday): # Name doesn't matter
library_name: Movies # Must match your library name in Plex
schedule: weekly(wednesday)
operations:
mass_audience_rating_update: tmdb
Movies Operations (Friday): # Name doesn't matter
library_name: Movies # Must match your library name in Plex
schedule: weekly(friday)
operations:
mass_critic_rating_update: trakt
```

@ -1,105 +0,0 @@
# Dynamic Collections
Plex Meta Manager can dynamically create collections based on different criteria, such as
* Collections based on the Collections from TMDb for every item in the library. ([Star Wars](https://www.themoviedb.org/collection/10-star-wars-collection), [Harry Potter](https://www.themoviedb.org/collection/1241), etc...)
* Collections based on each of a Users Trakt Lists
* Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks, etc...)
* Collections for each decade represented in the library (Best of 1990s, Best of 2000s, etc...)
* Collections for each of the moods/styles within a Music library (A Cappella, Pop Rock, etc...)
The main purpose of dynamic collections is to automate the creation of collections which would otherwise require considerable user input and repetition (such as creating a collection for every genre).
Each dynamic collection must have a mapping name (just like standard collections), which is also attached to the collection as a label to mark it as having been created by this dynamic collection.
This example will create a collection for every TMDb Collection associated with items in the library.
```yaml
dynamic_collections:
TMDb Collections: # This name is the mapping name
type: tmdb_collection
remove_suffix: "Collection"
```
## Collection Naming
By default, the collections generated will be named for the thing being used to create them; things like genres, countries, actors or even Trakt List Names.
There are many attributes that can change the titles, including `title_format`, `remove_suffix`, `remove_prefix`, `key_name_override`, and `title_override` all detailed below.
## Dynamic Keys & Key Names
A `dynamic key` or `key` for short is used to refer to a specific value/result from the dynamic collection criteria that will be used to create the collection.
A `key_name` is the name that replaces `<<key_name>>` in `title_format` to create the collection titles for each key.
An example of some keys and their names that would be generated from a `tmdb_collection` dynamic collection are
* `key`: "10"
* `key_name`: Star Wars Collection
* `key`: "1241"
* `key_name`: Harry Potter Collection
### Example Key Usage
Keys can be used for a number of purposes, examples can be found throughout this page. A few examples are shown below:
* Excluding the "Horror" key from the `Genre` dynamic collection definition
```yaml
dynamic_collections:
Genres: # mapping name does not matter, just needs to be unique
type: genre
exclude:
- Horror
```
* Using 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: <<key_name>> Cinema
key_name_override:
France: French
```
* Using the `addons` attribute to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into one "MTV" collection.
* When doing this, individual collections will not be created for the individual MTV collections, instead they will be merged within the "MTV" collection.
```yaml
dynamic_collections:
networks:
type: network
addons:
MTV:
- MTV2
- MTV3
- MTV (UK)
```
## Attributes
| Attribute | Description | Required |
|:--------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
| [`type`](#type--data) | Type of Dynamic Collection to be created. | :fontawesome-solid-circle-check:{ .green } |
| [`data`](#type--data) | Data to determine how dynamic collections with a certain `type` are created. | Depends on `type` |
| [`exclude`](#exclude) | Exclude this list of keys from being created into collections. | :fontawesome-solid-circle-xmark:{ .red } |
| [`addons`](#addons) | Defines how multiple keys can be combined under a parent key. | :fontawesome-solid-circle-xmark:{ .red } |
| [`template`](#template) | Name of the template to use for these dynamic collections. | :fontawesome-solid-circle-xmark:{ .red } |
| [`template_variables`](#template-variables) | Defines how template variables can be defined by key. | :fontawesome-solid-circle-xmark:{ .red } |
| [`other_template`](#other-template) | Name of the template to use for the other collection. | :fontawesome-solid-circle-xmark:{ .red } |
| [`remove_suffix`](#remove-prefixsuffix) | Removes the defined suffixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } |
| [`remove_prefix`](#remove-prefixsuffix) | Removes the defined prefixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } |
| [`title_format`](#title-format) | This is the format for the collection titles. | :fontawesome-solid-circle-xmark:{ .red } |
| [`key_name_override`](#key-name-override) | Defines how key names can be overridden before they are formatted into collection titles. | :fontawesome-solid-circle-xmark:{ .red } |
| [`title_override`](#title-override) | Defines how collection titles can be overridden ignoring title formatting. | :fontawesome-solid-circle-xmark:{ .red } |
| [`custom_keys`](#custom-keys) | Defines if custom keys are allowed. | :fontawesome-solid-circle-xmark:{ .red } |
| [`test`](#test) | Will add `test: true` to all collections for test runs. | :fontawesome-solid-circle-xmark:{ .red } |
| [`sync`](#sync) | Will remove dynamic collections that are no longer in the creation list. | :fontawesome-solid-circle-xmark:{ .red } |
| [`include`](#include) | Define a list of keys to be made into collections. | :fontawesome-solid-circle-xmark:{ .red } |
| [`other_name`](#other-name) | Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. | :fontawesome-solid-circle-xmark:{ .red } |
{%
include-markdown "./dynamic_types.md"
%}

File diff suppressed because it is too large Load Diff

@ -1,3 +0,0 @@
{%
include-markdown "../config/files_paths.md"
%}

@ -1,24 +0,0 @@
# Builders
Builders use third-party services to source items to be added to the collection. Multiple builders can be used in the same collection from a variety of sources listed below.
| Name | Description | Requires Config |
|:--------------------------------|:----------------------------------------------------------------------------------------------|:------------------------------------------:|
| [Plex](plex.md) | Grabs items based on the metadata inside your Plex Server. | :fontawesome-solid-circle-check:{ .green } |
| [Smart](smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | :fontawesome-solid-circle-check:{ .green } |
| [TMDb](tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } |
| [TVDb](tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [IMDb](imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [Trakt](trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } |
| [Tautulli](tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } |
| [Radarr](radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } |
| [Sonarr](sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } |
| [MdbList](mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [Letterboxd](letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [ICheckMovies](icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [FlixPatrol](flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [Reciperr](reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [StevenLu](stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [AniDB](anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } |
| [AniList](anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } |
| [MyAnimeList](myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } |

@ -1,8 +0,0 @@
# Plex Builders
The below builders are available based on metadata inside your Plex Server.
| Name | Description | Requires Config |
|:-------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
| [Dumb Builders](../plex.md) | Grabs items based on the metadata inside your Plex Server. Results are static and require PMM to re-run to update. | :fontawesome-solid-circle-check:{ .green } |
| [Smart Builders](../smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. Results are dynamic and will update as your library updates without the need to re-run PMM (Collections Only) | :fontawesome-solid-circle-check:{ .green } |

@ -1,22 +0,0 @@
# Third-Party Builders
The below builders are available based on third-party services, multiple builders can be combined in one collection.
| Name | Description | Requires Config |
|:--------------------------------------------|:----------------------------------------------------------------------------------------------|:------------------------------------------:|
| [TMDb](../tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } |
| [TVDb](../tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [IMDb](../imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [Trakt](../trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } |
| [Tautulli](../tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } |
| [Radarr](../radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } |
| [Sonarr](../sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } |
| [MdbList](../mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [Letterboxd](../letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [ICheckMovies](../icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [FlixPatrol](../flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [Reciperr](../reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [StevenLu](../stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } |
| [AniDB](../anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } |
| [AniList](../anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } |
| [MyAnimeList](../myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } |

@ -1,247 +0,0 @@
# Templates
Collection, Playlist, Metadata, and Overlay Files often share a lot of common or generalizable configuration details. Templates allow you to define these details in order for them to be used across multiple definitions.
For example, an actor collection might look like this:
```yaml
collections:
Bruce Lee:
plex_search:
all:
actor: tmdb
tmdb_person: 19429
sort_title: "!_Bruce Lee"
sync_mode: sync
collection_order: release
```
Note: The `sort_title` in these examples is wrapped in quotes because it contains a character [`!`] which has [syntactic meaning in YAML files](../pmm/essentials/yaml.md#string-literals). This "quoting special characters" is a general YAML requirement, not something specific to `sort_title`.
Then you add another:
```yaml
collections:
Bruce Lee:
plex_search:
all:
actor: tmdb
tmdb_person: 19429
sort_title: "!_Bruce Lee"
sync_mode: sync
collection_order: release
Chris Pratt:
plex_search:
all:
actor: tmdb
tmdb_person: 73457
sort_title: "!_Chris Pratt"
sync_mode: sync
collection_order: release
```
You could keep going in this way, but there's a lot of repetition there. Both of these collections have the same `sync_mode`, `collection_order`, and `actor` settings; the other two details, `tmdb_person` and `sort_title`, depend on a value defined in the collection.
Those repetitive aspects can be moved into a template and leveraged by multiple collections.
## Template Variables
Template Variables are used to define the data that going to be changing in the template.
For example, a template for those two collections might look like this:
```yaml
templates:
Actor:
plex_search:
all:
actor: tmdb
tmdb_person: <<person>>
sort_title: "!_<<collection_name>>"
sync_mode: sync
collection_order: release
```
The only things that change are the ID that is used with `tmdb_person` and the name of the collection that is used in `sort_title`.
Those two things surrounded by `<< >>` are "template variables" that you can define for any collection using this template, like this:
```yaml
collections:
Chris Pratt:
template:
name: Actor
person: 73457
```
or to do it in a single line you can do this
```yaml
collections:
Bruce Lee:
template: {name: Actor, person: 19429}
```
Note that we provide the template name `Actor` and the value to insert in the place of `<<person>>`. The `<<collection_name>>` is a template variable that is always available and doesn't have to be called out like `<<person>>`.
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, `<<person>>` could have been `<<tvdb_person_id>>` or `<<bing>>` 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.
To use a template with a collection definition you use the `template` attribute. The only required attribute under `template` is `name` which must correspond exactly to the template mapping name. Any other attributes under `template` are considered template variables whose names correspond exactly with the template variable name surrounded by `<<` and `>>` in the templates. These template variables will replace any part of any value that contains the template variable name surrounded by `<<` and `>>` in the template with the specified template variable's value.
Here's the full example Actor template and two different ways to use it, as it would appear in a collection file.
```yaml
templates:
Actor:
plex_search:
all:
actor: tmdb
tmdb_person: <<person>>
sort_title: "!_<<collection_name>>"
sync_mode: sync
collection_order: release
collections:
Bruce Lee:
template: {name: Actor, person: 19429}
Chris Pratt:
template:
name: Actor
person: 73457
```
## Multi-Template Variables
When using multiple Templates in a single definition you can send the same variable to all templates by using the `variables` attribute.
```yaml
templates:
Actor:
plex_search:
all:
actor: tmdb
tmdb_person: <<person>>
sort_title: "!_<<collection_name>>"
Common:
summary: "Movies that <<collection_name>> (TMDb ID: <<person>>) are in"
sync_mode: sync
collection_order: release
collections:
Bruce Lee:
variables: {person: 19429}
template: [{name: Actor}, {name: Common}]
Chris Pratt:
variables:
person: 19429
template:
- name: Actor
- name: Common
```
## Special Template Attributes
There are some attributes unique to `templates`; `default`, `optional`, `conditionals`, and `move_prefix`.
* `default` can set default values for template variables to be used if they're not specified in the call.
* `optional` can specify variables that if not specified on the template call will cause any attribute using one of those variables to be ignored in the template. You can make any template variable optional per collection by setting it to `null`.
* `conditionals` can specify variables based on conditions set by the user. See more [here](#conditionals)
* `move_prefix` can be given a list or comma-separated string of prefixes to move to the end of the collection/playlist name for sorting.
i.e. If you have `move_prefix: The` and a collection is called `The Avengers` then `<<collection_sort>>` is replaced with `Avengers, The` instead of `The Avengers` for that collection.
Every template call is given these template variables.
* Either `<<collection_name>>`, `<<playlist_name>>`, or `<<overlay_name>>` which is the name of the definition.
* `<<mapping_name>>` is the original mapping name for the definition in the YAML file.
* Either `<<collection_sort>>` or `<<playlist_sort>>` which is the name of the definition after `move_prefix` is applied.
* `<<library_type>>` which is the library type
* `<<library_name>>` which is the name of the library
* All Template Variables can append `_encoded` to the variable name to use a URL encode version of the variable. ex. `<<collection_name_encoded>>`
### Conditionals
Each conditional is identified by its mapping name and has one required attribute; `conditions` and one optional attribute; `default`.
`default` is the default value for the variable when no condition is met. If default is not specified the variable becomes an optional variable.
`conditions` is a list of sets of conditions where if all conditions are met then the variable will be the `value` specified in that condition.
Each set of conditions must have the `value` attribute which is the value of the variable if the condition is met.
All other attribute pairs in the set of conditions will check some condition of the value of the attribute key:
* If the attribute key ends with `.not` the value must not equal the attribute value or not be in the list of attribute values.
* If the attribute key ends with `.exists` and the attribute value is `true` then the attribute key must be a given template variable and if the value is anything else then the attribute key must not be a given template variable.
* Otherwise, the value must equal the attribute value or be in the list of attribute values.
Here's an example from the [PMM Default ratings file](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/overlays/ratings.yml).
```yaml
templates:
Rating:
conditionals:
rating1_horizontal_offset:
default: 30 # If no condition sets below are meet
conditions:
- side: [top, bottom]
rating2: none
rating3: none
value: 0 # If side is 'top' or 'bottom' and rating2 is 'none' and rating3 is 'none'
- side: [top, bottom]
rating2: none
value: -165 # If side is 'top' or 'bottom' and rating2 is 'none' and no previous conditions are meet
- side: [top, bottom]
rating3: none
value: -165 # If side is 'top' or 'bottom' rating3 is 'none' and no previous conditions are meet
- side: [top, bottom]
value: -335 # If side is 'top' or 'bottom' and no previous conditions are meet
```
## Advanced Example
Here's an example IMDb Genre template and two different ways to call it.
```yaml
templates:
IMDb Genre:
default:
title: feature
limit: 100
optional:
- poster_id
imdb_list:
- url: https://www.imdb.com/search/title/?title_type=<<title>>&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=<<genre>>
limit: <<limit>>
- url: https://www.imdb.com/search/title/?title_type=<<title>>&release_date=1990-01-01,&user_rating=5.0,10.0&num_votes=100000,&genres=<<genre>>&sort=user_rating,desc
limit: <<limit>>
sort_title: "!_<<collection_name>>"
url_poster: https://theposterdb.com/api/assets/<<poster_id>>
sync_mode: sync
collection_order: alpha
collections:
Action:
template:
name: IMDb Genre
genre: action
summary: Action film is a genre wherein physical action takes precedence in the storytelling. The film will often have continuous motion and action including physical stunts, chases, fights, battles, and races. The story usually revolves around a hero that has a goal, but is facing incredible odds to obtain it.
Comedy:
template: {name: IMDb Genre, genre: comedy, poster_id: 69200}
summary: Comedy is a genre of film that uses humor as a driving force. The aim of a comedy film is to illicit laughter from the audience through entertaining stories and characters. Although the comedy film may take on some serious material, most have a happy ending. Comedy film has the tendency to become a hybrid sub-genre because humor can be incorporated into many other genres. Comedies are more likely than other films to fall back on the success and popularity of an individual star.
Romantic Comedy:
template: {name: IMDb Genre, genre: "romance,comedy", limit: 200}
summary: Romantic Comedy is a genre that attempts to catch the viewers heart with the combination of love and humor. This sub-genre is light-hearted and usually places the two protagonists in humorous situation. Romantic-Comedy film revolves around a romantic ideal, such as true love. In the end, the ideal triumphs over the situation or obstacle, thus creating a happy ending.
filters:
genre: Comedy
```
Check out the example files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12) for more uses and examples.
## External Templates
To load external templates located in another file you can use the `external_templates` attribute by specifying the path type and path of the files that will be executed. See [Path Types](files.md#paths) for how to define them.
[files.md](files.md)
```yaml
external_templates:
- file: config/templates.yml
- pmm: templates
```

@ -22,7 +22,7 @@ anidb:
```
| Attribute | Allowed Values | Default | Required |
|:-------------------|:----------------------------------------------------------------------------------------------|:--------|:--------:|
|:-------------------|:----------------------------------------------------------------------------------------------|:--------|:----------------------------------------:|
| `client` | AniDB Client Name | N/A | :fontawesome-solid-circle-xmark:{ .red } |
| `version` | AniDB Client Version | N/A | :fontawesome-solid-circle-xmark:{ .red } |
| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language. | en | :fontawesome-solid-circle-xmark:{ .red } |
@ -33,21 +33,28 @@ anidb:
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.
![AniDB Add Project](anidb-1.png)
![AniDB Add Project](images/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.
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](images/anidb-2.png)
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](images/anidb-3.png)
9. Put the Client Name and Client Version you just created in your config.yml as `client` and `version` respectively.

@ -1,157 +0,0 @@
## This file is a template remove the .template to use the file
libraries: # This is called out once within the config.yml file
Movies: # These are names of libraries in your Plex
collection_files:
- pmm: basic # This is a file within PMM's defaults folder
- pmm: imdb # This is a file within PMM's defaults folder
# see the wiki for how to use local files, folders, URLs, or files from git
overlay_files:
- remove_overlays: false # Set this to true to remove all overlays
- pmm: ribbon # This is a file within PMM's defaults folder
# see the wiki for how to use local files, folders, URLs, or files from git
TV Shows:
collection_files:
- pmm: basic # This is a file within PMM's defaults folder
- pmm: imdb # This is a file within PMM's defaults folder
# see the wiki for how to use local files, folders, URLs, or files from git
overlay_files:
- remove_overlays: false # Set this to true to remove all overlays
- pmm: ribbon # This is a file within PMM's defaults folder
# see the wiki for how to use local files, folders, URLs, or files from git
Anime:
collection_files:
- pmm: basic # This is a file within PMM's defaults folder
- pmm: anilist # This is a file within PMM's defaults folder
# see the wiki for how to use local files, folders, URLs, or files from git
Music:
collection_files:
- file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE
playlist_files:
- pmm: playlist # This is a file within PMM's defaults folder
template_variables:
libraries: Movies, TV Shows # list of libraries that you want the PMM Defaults playlists to look at
# see the wiki for how to use local files, folders, URLs, or files from git
settings:
run_order:
- operations
- metadata
- collections
- overlays
cache: true
cache_expiration: 60
asset_directory: config/assets
asset_folders: true
asset_depth: 0
create_asset_folders: false
prioritize_assets: false
dimensional_asset_rename: false
download_url_assets: false
show_missing_season_assets: false
show_missing_episode_assets: false
show_asset_not_needed: true
sync_mode: append
minimum_items: 1
default_collection_order:
delete_below_minimum: true
delete_not_scheduled: false
run_again_delay: 2
missing_only_released: false
only_filter_missing: false
show_unmanaged: true
show_unconfigured: true
show_filtered: false
show_options: false
show_missing: true
show_missing_assets: true
save_report: false
tvdb_language: eng
ignore_ids:
ignore_imdb_ids:
item_refresh_delay: 0
playlist_sync_to_users: all
playlist_exclude_users:
playlist_report: false
verify_ssl: true
custom_repo:
check_nightly: false
webhooks: # Can be individually specified per library as well
error:
version:
run_start:
run_end:
changes:
plex: # Can be individually specified per library as well; REQUIRED for Plex Meta Manager to run
url: http://192.168.1.12:32400
token: ####################
timeout: 60
clean_bundles: false
empty_trash: false
optimize: false
tmdb: # REQUIRED for Plex Meta Manager to run
apikey: ################################
language: en
tautulli: # Can be individually specified per library as well
url: http://192.168.1.12:8181
apikey: ################################
omdb:
apikey: ########
cache_expiration: 60
mdblist:
apikey: #########################
cache_expiration: 60
notifiarr:
apikey: ####################################
anidb: # Not required for AniDB builders unless you want mature content
username: ######
password: ######
radarr: # Can be individually specified per library as well
url: http://192.168.1.12:7878
token: ################################
add_missing: false
add_existing: false
root_folder_path: S:/Movies
monitor: true
availability: announced
quality_profile: HD-1080p
tag:
search: false
radarr_path:
plex_path:
sonarr: # Can be individually specified per library as well
url: http://192.168.1.12:8989
token: ################################
add_missing: false
add_existing: false
root_folder_path: "S:/TV Shows"
monitor: all
quality_profile: HD-1080p
language_profile: English
series_type: standard
season_folder: true
tag:
search: false
cutoff_search: false
sonarr_path:
plex_path:
trakt:
client_id: ####################
client_secret: ####################
pin:
authorization:
# everything below is autofilled by Plex Meta Manager
access_token:
token_type:
expires_in:
refresh_token:
scope: public
created_at:
mal:
client_id: ####################
client_secret: ####################
authorization:
# everything below is autofilled by Plex Meta Manager
access_token:
token_type:
expires_in:
refresh_token:

@ -1,38 +0,0 @@
# Config File
Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other third-party services via API.
By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`.
A template Configuration File can be found in the [GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template).
This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific requirements for setup that can be found by clicking the links within the table.
| Attribute | Required |
|:---------------------------------|:----------------------------------------------------------------------|
| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } |
| [`playlist_files`](playlists.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library |
| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } |
| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } |
## Configuration File Example
This example outlines what a "standard" config.yml file might look like when in use.
~~~yaml
{%
include-markdown "./config.yml.template"
comments=false
%}
~~~

@ -1,259 +0,0 @@
# Movie Library Metadata
You can have the script edit the metadata of Movies by adding them to the `metadata` mapping of a Metadata File.
An example of multiple metadata edits in a movie library is below:
```yaml
metadata:
Godzilla (1954):
match:
title: Godzilla
year: 1954
content_rating: R
Godzilla (1998):
match:
title: Godzilla
year: 1998
sort_title: Godzilla 03
content_rating: PG-13
Shin Godzilla:
sort_title: Godzilla 06
content_rating: R
Godzilla 1985:
content_rating: PG
"Godzilla 2000: Millennium":
originally_available: 1999-08-18
Godzilla Against MechaGodzilla:
originally_available: 2002-03-23
Godzilla Raids Again:
content_rating: G
originally_available: 1955-05-21
Godzilla vs. Biollante:
content_rating: PG
Godzilla vs. Destoroyah:
content_rating: PG
originally_available: 1995-01-19
Godzilla vs. Gigan:
content_rating: G
originally_available: 1972-09-14
Godzilla vs. Hedorah:
content_rating: G
originally_available: 1971-04-01
Godzilla vs. King Ghidorah:
content_rating: PG
originally_available: 1991-04-28
Godzilla vs. Mechagodzilla:
content_rating: G
originally_available: 1974-03-24
Godzilla vs. Mechagodzilla II:
content_rating: PG
Godzilla vs. Megaguirus:
content_rating: PG
originally_available: 2000-08-31
Godzilla vs. Megalon:
content_rating: G
originally_available: 1973-03-17
Godzilla vs. Mothra:
content_rating: PG
originally_available: 1992-04-28
Godzilla vs. SpaceGodzilla:
content_rating: PG
originally_available: 1994-01-19
Godzilla, King of the Monsters!:
content_rating: G
"Godzilla, Mothra and King Ghidorah: Giant Monsters All-Out Attack":
content_rating: PG
originally_available: 2001-08-31
"Godzilla: Final Wars":
content_rating: PG
originally_available: 2004-12-13
"Godzilla: Tokyo S.O.S.":
originally_available: 2003-12-14
Halloween (Rob Zombie):
match:
title:
- Halloween (Rob Zombie)
- Halloween
year: 2007
"Halo 4: Forward Unto Dawn":
match:
title:
- Halo 4: Forward Unto Dawn
- Halo 4 Forward Unto Dawn
tmdb_show: 56295
content_rating: R
```
## Matching Movies
The `match` attribute is used to match movies within Plex to that definition within the Metadata file. One definition can match and edit multiple movies. The available matching options are outlined below.
| Attribute | Description |
|:-------------------------------|:------------------------------------------------------------------------------------------------------------------|
| `title`<sup>1</sup> | Only matches movies that exactly match the movie's Title. Can be a list (only one needs to match). |
| `year` | Only matches movies that were released in the given year. |
| `mapping_id`<sup>2</sup> | Only matches movies that have the given TMDb or IMDb ID. |
| `edition`<sup>3</sup> | Only matches movies that exactly match the movie's Edition. Can be a list (only one needs to match). |
| `edition_contains`<sup>3</sup> | Only matches movies where the movie's Edition contains the given string. Can be a list (only one needs to match). |
| `blank_edition`<sup>3</sup> | Only matches movies that have no Edition.<br>**Default:** `false`<br>**Values:** `true` or `false` |
1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching.
2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching.
3. When the server does not have a Plex Pass then the Edition Field is not accessible. In this scenario, PMM will check the movie's filepath for `{edition-...}` to determine what the edition is.
### Examples
Below are some examples on how movies can be matched.
#### Example 1 - `title` and `mapping_id`
The below example shows how `title` and `mapping_id` can be used to match movies.
```yaml
metadata:
movie1: # Matches via the title "Star Wars"
match:
title: Star Wars
edits...
movie2: # Matches via TMDb ID: 299534
match:
mapping_id: 299534
edits...
movie3: # Matches via IMDb ID: tt4154756
match:
mapping_id: tt4154756
edits...
movie4: # Matches via the title "9"
match:
title: 9
edits...
```
The Mapping Name can also be used to reduce line-count, as shown here:
```yaml
metadata:
Star Wars: # Matches via the title "Star Wars"
edits...
299534: # Matches via TMDb ID: 299534
edits...
tt4154756: # Matches via IMDb ID: tt4154756
edits...
"9": # Matches via the title "9"
edits...
```
**Note:** to search for a movie titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the movie associated with that TMDb ID.
#### Example 2 - `title` and `year`
The below example shows how `title` and `year` can be used to match movies.
In this example, there are two movies in the library called "Godzilla", so the `year` attribute is used to identify which movie is being matched.
```yaml
metadata:
Godzilla (1954): # Matches via the title "Godzilla" released in 1954
match:
title: Godzilla
year: 1954
edits...
Godzilla (1998): # Matches via the title "Godzilla" released in 1998
match:
title: Godzilla
year: 1998
edits...
```
#### Example 3 - using `editions`
The edition attributes can be used to further specify which version of a movie should be matched within Plex.
This can be combined with Example 1 as follows
```yaml
metadata:
movie1: # Matches via the title "Star Wars" and edition containing "4K77"
match:
title: Star Wars
edition_contains: 4K77
edits...
```
If you wanted to specify the version of Star Wars which does not have an edition, then the `blank_edition` attribute can be used as shown below:
```yaml
metadata:
movie1: # Matches via the title "Star Wars" and checks for no edition version
match:
title: Star Wars
blank_edition: true
edits...
```
## Metadata Edits
The available attributes for editing movies are as follows
### Special Attributes
| Attribute | Description |
|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `tmdb_show` | TMDb Show ID to use for metadata. Used when the Movie in your library is actually a miniseries on TMDb. (Example: [Halo 4: Forward Unto Dawn](https://www.themoviedb.org/tv/56295) or [IT](https://www.themoviedb.org/tv/19614)) **This is not used to say this movie is the given ID.** |
| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` |
1. If the server does not have a Plex Pass then the Edition Field is not accessible. In this case PMM will check the movies filepath for `{edition-MOVIES EDITION}` to determine what the edition is.
### General Attributes
| Attribute | Allowed Values |
|:-----------------------|:---------------------------------------------------------------|
| `title` | Text to change Title. |
| `sort_title` | Text to change Sort Title. |
| `edition`<sup>1</sup> | Text to change Edition. |
| `original_title` | Text to change Original Title. |
| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD |
| `content_rating` | Text to change Content Rating. |
| `user_rating` | Number to change User Rating. |
| `audience_rating` | Number to change Audience Rating. |
| `critic_rating` | Number to change Critic Rating. |
| `studio` | Text to change Studio. |
| `tagline` | Text to change Tagline. |
| `summary` | Text to change Summary. |
1. Requires Plex Pass
### Tag Attributes
You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`.
You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`.
| Attribute | Allowed Values |
|:-------------|:-----------------------------------------------------|
| `director` | List or comma-separated text of each Director Tag. |
| `country` | List or comma-separated text of each Country Tag. |
| `genre` | List or comma-separated text of each Genre Tag. |
| `writer` | List or comma-separated text of each Writer Tag. |
| `producer` | List or comma-separated text of each Producer Tag. |
| `collection` | List or comma-separated text of each Collection Tag. |
| `label` | List or comma-separated text of each Label Tag. |
### Image Attributes
| Attribute | Allowed Values |
|:------------------|:-------------------------------------------------|
| `url_poster` | URL of image publicly available on the internet. |
| `file_poster` | Path to image in the file system. |
| `url_background` | URL of image publicly available on the internet. |
| `file_background` | Path to image in the file system. |
### Advanced Attributes
| Attribute | Allowed Values |
|:---------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` |
| `use_original_title`<sup>1</sup> | `default`: Library default<br>`no`: No<br>`yes`: Yes |
1. Must be using the **New Plex Movie Agent**.

@ -1,138 +0,0 @@
# Music Library Metadata
You can have the script edit the metadata of Artists, Albums, and Tracks by adding them to the `metadata` mapping of a Metadata File.
An example of multiple metadata edits in a music library is below:
```yaml
metadata:
"Linkin Park":
country: "United States of America"
album_sorting: newest
albums:
"Hybrid Theory":
originally_available: "2000-10-24"
tracks:
1:
user_rating: 5
"One Step Closer":
user_rating: 5
"Meteora":
originally_available: "2003-03-25"
album_sorting: newest
tracks:
9:
user_rating: 5
"Numb":
user_rating: 5
"Minutes To Midnight":
originally_available: "2007-05-14"
```
## Matching Artist
The `match` attribute is used to match artists within Plex to that definition within the Metadata file. One definition can match and edit multiple artists. The available matching options are outlined below.
| Attribute | Allowed Values |
|:-------------------------------|:-----------------------------------------------------------------------------------------------------|
| `title`<sup>1</sup> | Only matches artists that exactly match the artist's Title. Can be a list (only one needs to match). |
1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching.
### Examples
Below are some examples on how artists can be matched.
#### Example 1 - `title`
The below example shows how `title` can be used to match artists.
```yaml
metadata:
artist1: # Matches via the title "Ke$ha"
match:
title: Ke$ha
edits...
artist2: # Matches via the title "311"
match:
title: 311
edits...
```
The Mapping Name can also be used to reduce line-count, as shown here:
```yaml
metadata:
Ke$ha: # Matches via the Name "Ke$ha"
edits...
"311": # Matches via the Name "311"
edits...
```
## Metadata Edits
The available attributes for editing artists, albums, and tracks are as follows
### Special Attributes
| Attribute | Values | Artists | Album | Tracks |
|:------------|:----------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:|
| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
* If you know of another Title your item might exist under, but you want it titled differently you can use `alt_title` to specify another title to look under and then be changed to the mapping name. For Example the Artist `Kesha` used to be stylized as `Ke$ha`, and might still be found that way in Metadata results.
```yaml
metadata:
"Kesha":
alt_title: "Ke$ha"
```
This would change the name of the default `Ke$ha` to `Kesha` and would not mess up any subsequent runs.
``
### General Attributes
| Attribute | Values | Artists | Album | Tracks |
|:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| `title` | Text to change Title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `record_label` | Text to change Record Label. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `track` | Text to change Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `disc` | Text to change Disc. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `original_artist` | Text to change Original Artist. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
### Tag Attributes
You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`.
You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`.
| Attribute | Values | Artists | Album | Tracks |
|:-----------------|:---------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `style` | List or comma-separated text of each Style Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `mood` | List or comma-separated text of each Mood Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `country` | List or comma-separated text of each Country Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
### Image Attributes
| Attribute | Values | Artists | Album | Tracks |
|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:|
| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
### Advanced Attributes
All these attributes only work with Artists.
| Attribute | Values |
|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `album_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr><tr><td>`name`</td><td>Alphabetical</td></tr></tbody></table> |

@ -1,210 +0,0 @@
# TV Show Library Metadata
You can have the script edit the metadata of Shows, Seasons, and Episodes by adding them to the `metadata` mapping of a Metadata File.
An example of multiple metadata edits in a show library is below:
```yaml
metadata:
"Avatar: The Last Airbender":
sort_title: Avatar 01
seasons:
1:
title: "Book One: Water"
summary: >-
After a lapse of 100 years, the Avatar-spiritual master of the elements-has returned. And just in
the nick of time. The Four Nations (Water, Earth, Fire, and Air) have become unbalanced. The Fire
Nation wants to rule the world, and its first conquest will be the Northern Water Tribe. It's up to
a 12-year-old Airbender named Aang to find a way to stop it. Join Aang, Katara, Sokka, Momo, and
Appa as they head north on the adventure of a lifetime.
episodes:
1:
user_rating: 9.1
2:
title: "Book Two: Earth"
summary: >-
Avatar Aang continues his quest to master the four elements before the end of summer. Together with
Katara, Sokka, Momo, and Appa, he journeys across the Earth Kingdom in search of an Earthbending
mentor. Along the way, he confronts Princess Azula, treacherous daughter of Firelord Ozai and
sister to Prince Zuko. More powerful than her brother, Azula will stop nothing to defeat the Avatar.
But Aang and the gang find plenty of Earth Kingdom allies to help them along the way. From the swamps
of the South to the Earth King's palace, Avatar: Book 2 is an adventure like no other.
3:
title: "Book Three: Fire"
summary: >-
Having survived the terrible battle with Azula, Aang faces new challenges as he and his brave
friends secretly enter the Fire Nation. Their quest is to find and defeat Firelord Ozai. Along
the way, they discover that Ozai has plans of his own. The leader of the Fire Nation intends to
use the massive power of Sozin's comet to spread his dominion permanently across the four nations.
Short on time, Aang has a lot of bending to learn and no master to help him learn it. However, his
friends are there to help, and he finds unexpected allies deep in the heart of the Fire Nation. In
the spectacular four-part conclusion, Aang must fulfill his destiny and become a fully realized
Avatar, or watch the world go up in smoke.
episodes:
21:
summary: The Epic Series Final of Avatar The Last Airbender
"Avatar: The Legend of Korra":
match:
title:
- "Avatar: The Legend of Korra"
- The Legend of Korra
sort_title: Avatar 02
original_title: The Legend of Korra
seasons:
1:
title: "Book One: Air"
2:
title: "Book Two: Spirits"
3:
title: "Book Three: Change"
4:
title: "Book Four: Balance"
```
## Matching Shows
The `match` attribute is used to match shows within Plex to that definition within the Metadata file. One definition can match and edit multiple shows. The available matching options are outlined below.
| Attribute | Allowed Values |
|:-------------------------------|:------------------------------------------------------------------------------------------------------------------|
| `title`<sup>1</sup> | Only matches shows that exactly match the show's Title. Can be a list (only one needs to match). |
| `year` | Only matches shows that were released in the given year. |
| `mapping_id`<sup>2</sup> | Only matches shows that have the given TVDb or IMDb ID. |
1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching.
2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching.
### Examples
Below are some examples on how shows can be matched.
#### Example 1 - `title` and `mapping_id`
The below example shows how `title` and `mapping_id` can be used to match shows.
```yaml
metadata:
show1: # Matches via the title "Game of Thrones"
match:
title: Game of Thrones
edits...
show2: # Matches via TVDb ID: 366524
match:
mapping_id: 366524
edits...
show3: # Matches via IMDb ID: tt10234724
match:
mapping_id: tt10234724
edits...
show4: # Matches via the title "24"
match:
title: 24
edits...
```
The Mapping Name can also be used to reduce line-count, as shown here:
```yaml
metadata:
Game of Thrones: # Matches via the Name "Game of Thrones"
edits...
366524: # Matches via TVDb ID: 366524
edits...
tt10234724: # Matches via IMDb ID: tt10234724
edits...
"24": # Matches via the Name "24"
edits...
```
**Note:** to search for a show titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the show associated with that TVDb ID.
#### Example 2 - `title` and `year`
The below example shows how `title` and `year` can be used to match shows.
In this example, there are two shows in the library called "Vikings", so the `year` attribute is used to identify which show is being matched.
```yaml
metadata:
Vikings (2012): # Matches via the title "Vikings" released in 2012
match:
title: Vikings
year: 2012
edits...
Vikings (2013): # Matches via the title "Vikings" released in 2013
match:
title: Vikings
year: 2013
edits...
```
## Metadata Edits
The available attributes for editing shows, seasons, and episodes are as follows
### Special Attributes
| Attribute | Description | Shows | Seasons | Episodes |
|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:|
| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../../../pmm/install/guides/formula.md) for more information. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
### General Attributes
| Attribute | Allowed Values | Shows | Seasons | Episodes |
|:-----------------------|:---------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| `title` | Text to change Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `original_title` | Text to change Original Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `content_rating` | Text to change Content Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `audience_rating` | Number to change Audience Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `studio` | Text to change Studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `tagline` | Text to change Tagline. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
### Tag Attributes
You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`.
You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`.
| Attribute | Allowed Values | Shows | Seasons | Episodes |
|:-------------|:-----------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| `director` | List or comma-separated text of each Director Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| `writer` | List or comma-separated text of each Writer Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
### Image Attributes
| Attribute | Allowed Values | Shows | Seasons | Episodes |
|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
### Advanced Attributes
All these attributes only work with Shows.
| Attribute | Allowed Values |
|:---------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `episode_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr></tbody></table> |
| `keep_episodes` | <table class="clearTable"><tbody><tr><td>`all`</td><td>All episodes</td></tr><tr><td>`5_latest`</td><td>5 latest episodes</td></tr><tr><td>`3_latest`</td><td>3 latest episodes</td></tr><tr><td>`latest`</td><td>Latest episodes</td></tr><tr><td>`past_3`</td><td>Episodes added in the past 3 days</td></tr><tr><td>`past_7`</td><td>Episodes added in the past 7 days</td></tr><tr><td>`past_30`</td><td>Episodes added in the past 30 days</td></tr></tbody></table> |
| `delete_episodes` | <table class="clearTable"><tbody><tr><td>`never`</td><td>Never</td></tr><tr><td>`day`</td><td>After a day</td></tr><tr><td>`week`</td><td>After a week</td></tr><tr><td>`refresh`</td><td>On next refresh</td></tr></tbody></table> |
| `season_display` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`show`</td><td>Show</td></tr><tr><td>`hide`</td><td>Hide</td></tr></tbody></table> |
| `episode_ordering` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`tmdb_aired`</td><td>The Movie Database (Aired)</td></tr><tr><td>`tvdb_aired`</td><td>TheTVDb (Aired)</td></tr><tr><td>`tvdb_dvd`</td><td>TheTVDb (DVD)</td></tr><tr><td>`tvdb_absolute`</td><td>TheTVDb (Absolute)</td></tr></tbody></table> |
| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` |
| `use_original_title`<sup>1</sup> | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`no`</td><td>No</td></tr><tr><td>`yes`</td><td>Yes</td></tr></tbody></table> |
1. Must be using the **New Plex TV Agent**

@ -1,139 +0,0 @@
# Playlist Files
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.
???+ tip
Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../playlists.md) within the Configuration File.
You can use the [`playlist_report` setting](../settings.md#playlist-report) to get a list of your playlists printed out in your log.
## Example
This example is a Playlist file with a basic overlay which is saved in a file called `MyPlaylists.yml` within the location mapped as `config` in my setup.
???+ example "Example "MyPlaylists.yml""
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
collections: #(1)!
Top 50 Grossing Films of All Time (Worldwide):
tmdb_list: 10 #(2)!
collection_order: custom #(3)!
sync_mode: sync #(4)!
```
1. This must appear once and **only once** in any Metadata file
2. This creates a collection based on tmdb list ID 10, https://www.themoviedb.org/list/10 would also be accepted
3. This will sort the items in the Plex collection to be the same as the order in the list
4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the collection. Set this to `append` if you only want it to add things and not remove them.
???+ example "config.yml Example Collection File Addition"
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
playlists: #(1)!
Marvel Cinematic Universe Chronological Order:
sync_mode: sync
libraries: Movies, TV Shows #(2)!
sync_to_users: User1, someone@somewhere.com, User3 #(3)!
trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe
summary: Marvel Cinematic Universe In Chronological Order
```
1. This must appear once and **only once** in any Playlist file
2. These libraries must exist in your Plex library
3. Leave this blank if you only only want the Playlist to sync to the server owner's account
This file would then be defined in my `config.yml` file as a `playlist_files` item:
???+ warning "Important Note"
Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see in the below example.
???+ example "config.yml Example Playlists Addition"
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
libraries:
Movies:
# Metadata and Overlay files here
TV Shows:
# Metadata and Overlay files here
playlist_files: #(1)!
- file: config/MyPlaylists.yml #(2)!
```
1. Note that Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see here
2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides.
## Playlist Attributes
Plex Meta Manager can automatically build and update playlists defined within the `playlists` attribute.
These are the attributes which can be utilized within the Playlist File:
| Attribute | Description |
|:-----------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------|
| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple playlists |
| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../../builders/files.md#paths) that point to external templates that can be leveraged by multiple playlists |
| [`playlists`](#playlist-attributes) | contains definitions of playlists you wish to add to the server |
* `playlists` is required in order to run the Playlist File.
* You can find example Playlist Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM)
* Plex does not support the "Continue Watching" feature for playlists, you can [vote for the feature here](https://forums.plex.tv/t/playlists-remember-position-for-subsequent-resume/84866/39)
Each playlist requires its own section within the `playlists` attribute and unlike collections, playlists can only be built using one Builder as their ordering is inherited from the builder; it is not possible to combine builders.
```yaml
playlists:
Marvel Cinematic Universe Chronological Order:
# ... builder, details, and filters for this playlist
Star Wars Clone Wars Chronological Order:
# ... builder, details, and filters for this playlist
etc:
# ... builder, details, and filters for this playlist
```
There are multiple types of attributes that can be utilized within a playlist:
* [Builders](../../builders/overview.md)
* [Settings/Updates](../../metadata/update.md)[update.md]
* [Filters](../../builders/filters.md)
### Special Playlist Attributes
| Attribute | Description | Required |
|:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
| `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../configuration.md. | :fontawesome-solid-circle-check:{ .green } |
| `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../settings.md#playlist-sync-to-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } |
| `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../settings.md#playlist-exclude-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } |
| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } |
* Any defined playlist will be always be visible by The Plex Media Server owner, so it doesn't need to be defined within `sync_to_users`.
## Example Playlists
In the following example, media is pulled from the `Movies` and `TV Shows` libraries into the one Playlist, and the playlist is shared with a specific set of users:
```yaml
playlists:
Marvel Cinematic Universe Chronological Order:
sync_mode: sync
libraries: Movies, TV Shows
sync_to_users: User1, someone@somewhere.com, User3
trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe?sort=rank,asc
summary: Marvel Cinematic Universe In Chronological Order
Star Wars Clone Wars Chronological Order:
sync_to_users: all
sync_mode: sync
libraries: Movies, TV Shows
trakt_list: https://trakt.tv/users/tomfin46/lists/star-wars-the-clone-wars-chronological-episode-order
```

@ -0,0 +1,49 @@
Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your
libraries.
Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and
metadata but also serve as a crucial backup resource in case a restore is necessary.
These are the File types that can be utilized against Plex servers:
| File Type | Description | Parent Attribute |
|:--------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------|:--------------------:|
| [Collection Files](../files/collections.md) | Defines the data for building collections, allowing you to group and showcase your library in unique ways. | `collection_files` |
| [Overlay Files](../files/overlays.md) | Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters. | `overlay_files` |
| [Metadata Files](../files/metadata.md) | Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library. | `metadata_files` |
| [Playlist Files](../files/playlists.md) | Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server. | `playlist_files` |
| [Template Files](../files/templates.md) | Defines templates in external files, allowing you to use the same templates across multiple other files. | `external_templates` |
??? example "Example File Blocks (click to expand)"
In this example, multiple file blocks are defined for the `"TV Shows"` library:
```yaml
libraries:
TV Shows:
collection_files:
- file: config/TVShows.yml
- folder: config/TV Shows/
overlay_files:
- pmm: imdb
- repo: overlays
playlist_files:
- url: https://somewhere.com/Playlists.yml
```
**Unlike the others, Playlist Files are not defined per-library.**
Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named
`TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and
then load any collection files within that directory.
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within
the local PMM folder [or docker container] for a file called `imdb.yml`.
* Then, look within the Custom Defined Repo for a file called `overlays.yml`.
* Finally, load the playlist file located at `https://somewhere.com/Playlists.yml`

@ -1,3 +1,259 @@
# File Blocks
When using Plex Meta Manager, the structure of each library is made using File Blocks
???+ example "Example Library Structure"
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
```
In the above example, `collection_files` is the type of File, which tells PMM that the entries that follow will
create/update collections and `- pmm:` is the type of Path, which PMM that the file it is looking for is a PMM
Defaults file.
These ideas will be further outlined on this page.
## Files
{%
include-markdown "./files_paths.md"
include-markdown "./file_types.md"
%}
## Blocks
Each time a file is called it's going to use what we call a "File Block". Each block must have the file location type
and path and can have other attributes to add more control to that file.
Every file block under the parent attribute begins with a `-`.
???+ example "Example Block"
This example has 2 blocks each using location type `pmm` with the path being `tmdb` and `imdb` respectively under
the parent attribute `collection_files`.
```yaml
libraries:
Movies:
collection_files: # Parent Attribute
- pmm: tmdb # Block 1
- pmm: imdb # Block 2
```
### Location Types and Paths
There are multiple location types that can be used to call a file. They can either be on the local system, online at an
url, part of the [PMM Defaults](../defaults/guide.md), directly from the
[PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository, or from another
[`Custom Repository`](settings.md).
The location types are outlined as follows:
??? blank "`file` - Used to run a local file.<a class="headerlink" href="#file" title="Permanent link"></a>"
<div id="file" />Used to run a file which is located within the system that PMM is being run from.
File locations need to be accessible to PMM at those paths; this is typically only something you need to consider
when using Docker.
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- file: config/path/to/file.yml
```
??? blank "`folder` - Used to run all local files in a directory.<a class="headerlink" href="#folder" title="Permanent link"></a>"
<div id="folder" />Used to run all files located in a directory which is located within the system that PMM is being
run from.
Folder locations need to be accessible to PMM at those paths; this is typically only something you need to consider
when using Docker.
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- folder: config/path/to/folder
```
??? blank "`url` - Used to run a file hosted at a URL.<a class="headerlink" href="#url" title="Permanent link"></a>"
<div id="url" />Used to run a file hosted publicly on the internet and accessible at a URL.
This needs to point directly to the YAML file. A common error is using a gitHub link that points to the *page
displaying the YAML*. In gitHub, for instance, click on the "Raw" button and use *that* link.
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- url: https://example.com/path/to/file.yml
```
??? blank "`pmm` - Used to run a built-in [PMM Defaults](../defaults/guide.md) file.<a class="headerlink" href="#pmm" title="Permanent link"></a>"
<div id="pmm" />Used to run a built-in PMM Defaults file. The values you'd enter here are listed in the
[default usage guide](../defaults/guide.md).
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- pmm: oscars
```
??? blank "`git` - Used to run a file hosted on the [PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository.<a class="headerlink" href="#git" title="Permanent link"></a>"
<div id="git" />Used to run a file hosted on the
[PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository.
Note that you enter the bits of the items path relative to the top level of the repo [`meisnate12/People`] and you
don't need the `.yml` extension.
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- git: meisnate12/People # this links to https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/meisnate12/People.yml
```
??? blank "`repo` - Used to run a file hosted on a custom repository.<a class="headerlink" href="#repo" title="Permanent link"></a>"
<div id="repo" />Used to run a file which is hosted on a repo specified by the user with the
[`custom_repo`](settings.md#custom-repo) Setting Attribute.
Note that as with `git` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't
need the `.yml` extension.
???+ example "Example"
This is assuming the `custom_repo` setting is
`https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12`.
```yaml
libraries:
Movies:
collection_files:
- repo: People
```
## Other Block Attributes
You can have some control of the files from inside your Configuration file by using these block attributes.
??? blank "`template_variables` - Used to define [Custom Template Variables](../files/templates.md#template-variables) for a file.<a class="headerlink" href="#template-variables" title="Permanent link"></a>"
<div id="template-variables" />Passes all given [Template Variables](../files/templates.md#template-variables) to
every template in the file.
**Note: the file has to be properly set up to use the variables.**
<hr style="margin: 0px;">
**Attribute:** `template_variables`
**Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) of values specified by each particular file.
**Default Value:** `None`
???+ example "Example"
```yaml
libraries:
TV Shows:
collection_files:
- pmm: genre
template_variables:
schedule_separator: never
collection_mode: hide
- pmm: actor # Notice how the `-` starts this block
template_variables:
schedule_separator: never
collection_mode: hide
```
In this example there will be two template variables added to every template in the git file pmm: genre.
`schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to
`hide`.
What these variables will do depends on how they're defined in the Collection File.
??? blank "`schedule` - Used to schedule when a file is run.<a class="headerlink" href="#schedule" title="Permanent link"></a>"
<div id="schedule" />Used to schedule when this file is run using the [schedule options](schedule.md).
<hr style="margin: 0px;">
**Attribute:** `schedule`
**Accepted Values:** Any [schedule option](schedule.md)
**Default Value:** `daily`
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
schedule: weekly(friday)
- pmm: actors
schedule: weekly(saturday)
playlist_files:
- file: config/Playlists.yml
schedule: weekly(sunday)
```
??? blank "`asset_directory` - Used to define Asset Directories for a file.<a class="headerlink" href="#asset-directory" title="Permanent link"></a>"
<div id="asset-directory" />Specify the directory where assets (posters, backgrounds, etc) are located for this
specific file.
???+ tip
Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory
must be mounted/visible to the docker container).
<hr style="margin: 0px;">
**Attribute:** `asset_directory`
**Accepted Values:** Any directory
**Default Value:** `[Directory containing YAML config]/assets`
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
asset_directory: <path_to_assets>/Movies
- pmm: actors
asset_directory: <path_to_assets>/people
overlay_files:
- pmm: imdb
playlist_files:
- file: config/Playlists.yml
asset_directory:
- <path_to_assets>/playlists1
- <path_to_assets>/playlists2
```

@ -1,299 +0,0 @@
# Files & Paths
When using Plex Meta Manager, the structure of each library is made up of Files and Paths
???+ example "Example Library Structure"
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
```
In the above example, `collection_files` is the type of File, which tells PMM that the entries that follow will create/update collections and `- pmm:` is the type of Path, which PMM that the file it is looking for is a PMM Defaults file.
These ideas will be further outlined on this page.
## Files
Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your libraries.
Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and metadata but also serve as a crucial backup resource in case a restore is necessary.
There are four main File types that can be utilized against Plex servers:
| File Type | Description |
|:-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------|
| [Collection Files](data/collections.md) | Defines the data for building collections, allowing you to group and showcase your library in unique ways |
| [Overlay Files](data/overlays.md) | Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters. |
| Metadata Files ([Movies](data/metadata/movie.md)/[Shows](data/metadata/show.md)/[Music](data/metadata/music.md)) | Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library. |
| [Playlist Files](data/playlists.md) | Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server |
Collection, Overlay and Metadata Files can be linked to libraries in the [Libraries Attribute](libraries) within the [Configuration File](../config/configuration.md).
## Example Files
This is a basic Files structure showing the use of all four File types.
???+ example "Example Files"
Unlike the other three, Playlist Files are not defined per-library.
Theis examples utilizes the [PMM Defaults](../defaults/files.md)
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
overlay_files:
- pmm: resolution
metadata_files:
- file: config/metadata.yml
playlist_files:
- pmm: playlists
```
# Paths
YAML Files are defined by their path type and path location for the [`collection_files`](libraries.md#collection-file), [`overlay_files`](libraries.md#overlay-file), [`playlist_files`](data/playlists), and [`external_templates`](../builders/templates).
They can either be on the local system, online at an url, directly from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository, or from another [`Custom Repository`](settings.md#custom-repo).
The path types are outlined as follows:
* `- file:` refers to a collection file which is located within the system that PMM is being run from.
* `- folder:` refers to a directory containing collection files which is located within the system that PMM is being run from.
* `- pmm:` refers to a [PMM Defaults](../defaults/files.md) builders/overlay/playlist file.
* `- url:` refers to a collection file which is hosted publicly on the internet.
* `- git:` refers to a collection file which is hosted on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs).
* `- repo:` refers to a collection file which is hosted on a custom repository specified by the user with the [`custom_repo` Setting Attribute](settings.md#custom-repo).
## Example Paths
```yaml
libraries:
Movies:
collection_files:
- file: config/path/to/file.yml
- folder: config/path/to/folder
```
File and folder paths need to be accessible to PMM at those paths; this is typically only something you need to consider when using Docker.
```
- url: https://example.com/path/to/file.yml
```
This needs to point directly to the YAML file. A common error is using a gitHub link that points to the *page displaying the YAML*. In gitHub, for instance, click on the "Raw" button and use *that* link.
```
- git: meisnate12/People # this links to https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/meisnate12/People.yml
```
Note that you enter the bits of the items path relative to the top level of the repo [`meisnate12/People`] and you don't need the `.yml` extension.
```
- repo: People
```
This is assuming the `custom_repo` setting is `https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12`
Note that as with `- git:` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't need the `.yml` extension.
Note that as with `- git:` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't need the `.yml` extension.
```
- pmm: oscars
```
The values you'd enter here are listed in the [default metadata guide](../defaults/guide.md).
## YAML Controls
You can have some control of yaml files from inside your Configuration file by using YAML Controls.
### Template Variables
You can define [Template Variables](../builders/templates.md#template-variables) that will be added to every template in the associated YAML file by adding the `template_variables` attribute to the dictionary defining the file.
#### Example
```yaml
libraries:
TV Shows:
collection_files:
- pmm: genre
template_variables:
schedule_separator: never
collection_mode: hide
- pmm: actor # Notice how the `-` starts this "section"
template_variables:
schedule_separator: never
collection_mode: hide
```
In this example there will be two template variables added to every template in the git file pmm: genre.
`schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to `hide`.
What these variables will do depends on how they're defined in the Collection File.
### Schedule
Each [`collection_files`](libraries.md#collection-file), [`overlay_files`](libraries.md#overlay-file), or [`playlist_files`](data/playlists) can be scheduled by adding the `schedule` attribute to the dictionary defining the file.
Below is an example of a scheduled Collection File and Playlist File:
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
schedule: weekly(friday)
- pmm: actors
schedule: weekly(saturday)
playlist_files:
- file: config/Playlists.yml
schedule: weekly(sunday)
```
### Asset Directory
You can define custom Asset Directories per file by adding `asset_directory` to the file call.
???+ important
Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container).
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
asset_directory: <path_to_assets>/Movies
- pmm: actors
asset_directory: <path_to_assets>/people
overlay_files:
- pmm: imdb
playlist_files:
- file: config/Playlists.yml
asset_directory:
- <path_to_assets>/playlists1
- <path_to_assets>/playlists2
```
## Collection File
The [`collection_files`](libraries.md#collection-file) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md).
??? example
In this example, multiple collection file path types are defined for the `"TV Shows"` library:
```yaml
libraries:
TV Shows:
collection_files:
- file: config/TVShows.yml
- folder: config/TV Shows/
- pmm: tmdb
- repo: charts
- url: https://somewhere.com/PopularTV.yml
```
Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and then load any collection files within that directory.
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `tmdb.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/chart/tmdb.yml).
* Then, look within the Custom Defined Repo for a file called `charts.yml`.
* Finally, load the collection file located at `https://somewhere.com/PopularTV.yml`
## Overlay File
The [`overlay_files`](libraries.md#overlay-file) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md).
??? example
In this example, multiple overlay file path types are defined for the `"TV Shows"` library:
```yaml
libraries:
TV Shows:
overlay_files:
- file: config/overlays.yml
- folder: config/overlay configs/
- pmm: imdb
- repo: overlays
- url: https://somewhere.com/Overlays.yml
```
Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named `overlays.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `overlay configs`, and then load any collection files within that directory.
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `imdb.yml`.
* Then, look within the Custom Defined Repo for a file called `overlays.yml`.
* Finally, load the collection file located at `https://somewhere.com/Overlays.yml`
## Playlist Files
The [`playlist_files`](data/playlists.md) at the top level in your [Configuration File](configuration.md).
??? example
In this example, multiple `playlist_files` attribute path types are defined:
```yaml
playlist_files:
- file: config/playlists.yml
- folder: config/Playlists/
- pmm: playlist
- repo: playlists
- url: https://somewhere.com/Playlists.yml
```
Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a playlist file named `Playlists.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `Playlists`, and then load any playlist files within that directory.
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `playlist.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/playlist.yml).
* Then, look within the Custom Defined Repo for a file called `playlists.yml`.
* Finally, load the playlist file located at `https://somewhere.com/Playlists.yml`
## External Templates
The [`external_templates`](../builders/templates.md#external-templates) attribute is defined at the top level in your [Collection File](data/collections.md).
??? example
In this example, multiple external template file path types are defined:
```yaml
external_templates:
- file: config/templates.yml
- folder: config/templates/
- url: https://somewhere.com/templates.yml
- pmm: templates
- repo: templates
```
Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named `templates.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `templates`, and then load any collection files within that directory.
* Then, load the collection file located at `https://somewhere.com/templates.yml`.
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `templates.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/templates.yml).
* Finally, look at the within the Custom Defined Repo for a file called `templates.yml`.

@ -1,6 +1,7 @@
# GitHub Attributes
Configuring [GitHub](https://github.com/) is optional but can allow you to avoid rate limits when requesting data from GitHub.
Configuring [GitHub](https://github.com/) is optional but can allow you to avoid rate limits when requesting data from
GitHub.
Requests made with a GitHub token have a higher rate limit than anonymous requests.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 9.9 KiB

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before

Width:  |  Height:  |  Size: 156 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

@ -5,101 +5,40 @@ search:
# Library Attributes
## Library Attributes
Within the [Configuration File](overview.md), the `libraries` attribute specifies the Plex libraries that the user wants
Plex Meta Manager to act on.
Within the [Configuration File](configuration.md), the `libraries` attribute specifies the Plex libraries that the user wants Plex Meta Manager to act on.
Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or
"execute the following Collection Definition files". These attributes can be specified individually per library, or can
be inherited from the global value if it has been set. If an attribute is specified at both the library and global
level, then the library level attribute will take priority.
Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or "execute the following Collection Definition files". These attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority.
### Attributes
### Example
The available attributes for each library are as follows:
This example is an advanced version of the library mappings which highlights some attributes being set at the global level, and some being set at the library level:
??? blank "`library_name` - Used to specify the Library's name.<a class="headerlink" href="#library-name" title="Permanent link"></a>"
???+ example "Example Library Mappings"
<div id="library-name" />*Required only when trying to use multiple servers with the same name.*
In this example, the `"TV Shows On Second Plex"` library has a library-level `plex` configuration, which takes priority over the `plex` configuration set at the global level.
Each library that the user wants Plex Meta Manager to interact with must be documented with a library attribute.
The `"Anime"` library also has a library-level `radarr` configuration, which takes priority over the `radarr` configuration set at the global level.
A library attribute is represented by the mapping name (i.e. `Movies` or `TV Shows`), this must have a unique name
that correlates with a library of the same name within the Plex Media Server.
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
- pmm: imdb
- pmm: studio
- pmm: genre
- pmm: actor
operations:
mass_critic_rating_update: tmdb
split_duplicates: true
TV Shows:
collection_files:
- file: config/TV Shows.yml
- pmm: tmdb
- pmm: network
overlay_files:
- remove_overlays: false
- file: config/Overlays.yml
TV Shows On Second Plex:
library_name: TV Shows
plex:
url: http://192.168.1.98:32400
token: ####################
collection_files:
- file: config/TV Shows.yml
- pmm: tmdb
- pmm: network
Anime:
collection_files:
- file: config/Anime.yml
- pmm: myanimelist
radarr:
url: http://192.168.1.45:7878
token: ################################
root_folder_path: S:/Anime
settings:
asset_directory: config/assets/anime
plex:
url: http://192.168.1.12:32400
token: ####################
radarr:
url: http://192.168.1.12:7878
token: ################################
add: true
root_folder_path: S:/Movies
monitor: true
availability: announced
quality_profile: HD-1080p
tag: pmm
search: false
```
In the situation that two servers are being connected to which both have libraries of the same name, the
`library_name` attribute can be utilized to specify the real Library Name, whilst the library attribute's mapping
name can be made into a placeholder. This is showcased below:
### Attributes
The available attributes for each library are as follows:
<hr style="margin: 0px;">
| Attribute | Description |
|:----------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`library_name`](#library-name) | Used to specify the Library's name.<br>*required only when trying to use multiple libraries with the same name.*<br>**Values:** Library Name<br>**Default:** Base Attribute Name |
| [`collection_files`](#collection-file) | Used to define [Collection Files](data/collections.md).<br>**Values:** Location of Collection YAML files.<br>**Default:** `/config/<<MAPPING_NAME>>.yml` |
| [`metadata_files`](#metadata-file) | Used to define [Metadata Files](data/collections.md).<br>**Values:** Location of Metadata YAML files. |
| [`overlay_files`](#overlay-file) | Used to define [Overlay Files](data/overlays.md) .<br>**Values:** Location of Overlay YAML files. |
| [`report_path`](#report-path) | Location to create the YAML file listing added, removed, filtered, and missing items for this library.<br>**Values:** Location of the report file.<br>**Default:** `/config/<<MAPPING_NAME>>_report.yml` |
| [`template_variables`](#library-template-variables) | Library template variables to be applied to every Collection, Metadata, and Overlay file run.<br>**Values:** Values are specified by each particular file. |
| [`schedule`](../builders/details/schedule.md) | Used to schedule when this library is run.<br>**Values:** Any [schedule option](../builders/details/schedule.md)<br>**Default:** `daily` |
| [`operations`](operations.md) | Used to specify Library Operations to run.<br>**Values:** Any [Library Operation](operations.md) |
| [`settings`](settings.md) | Used to override global `setting` values for this library only.<br>**Values:** Any `setting` attribute that overrides a global value.<br>**Default:** global value |
| [`plex`](plex.md) | Used to override global `plex` values for this library only. **`plex` Attribute is required either here or globally**<br>**Values:** Any `plex` attribute that overrides a global value.<br>**Default:** global value |
| [`radarr`](radarr.md) | Used to override global `radarr` values for this library only.<br>**Values:** Any `radarr` attribute that overrides a global value.<br>**Default:** global value |
| [`sonarr`](sonarr.md) | Used to override global `sonarr` values for this library only.<br>**Values:** Any `sonarr` attribute that overrides a global value.<br>**Default:** global value |
| [`tautulli`](tautulli.md) | Used to override global `tautulli` values for this library only.<br>**Values:** Any `tautulli` attribute that overrides a global value.<br>**Default:** global value |
**Attribute:** `library_name`
### Library Name
**Accepted Values:** Library Name
Each library that the user wants Plex Meta Manager to interact with must be documented with a library attribute. A library attribute is represented by the mapping name (i.e. `Movies` or `TV Shows`), this must have a unique name that correlates with a library of the same name within the Plex Media Server. In the situation that two servers are being connected to which both have libraries of the same name, the `library_name` attribute can be utilized to specify the real Library Name, whilst the library attribute's mapping name can be made into a placeholder. This is showcased below:
**Default Value:** Base Attribute Name
???+ Library Name Example
???+ example "Example"
```yaml
libraries:
@ -117,11 +56,25 @@ Each library that the user wants Plex Meta Manager to interact with must be docu
token: ####################
```
* In this example, `"Movies01"`, `"TV Shows"`, and `"Anime"` will all use the global plex server (**http://192.168.1.12:32400**) which is defined using the global `plex` mapping. `"Movies02"` will use the plex server **http://192.168.1.35:32400** which is defined under its `plex` mapping over the global mapping.
* In this example, `"Movies01"`, `"TV Shows"`, and `"Anime"` will all use the global plex server
(**http://192.168.1.12:32400**) which is defined using the global `plex` mapping. `"Movies02"` will use the plex
server **http://192.168.1.35:32400** which is defined under its `plex` mapping over the global mapping.
### Collection File
??? blank "`collection_files` - Used to define [Collection Files](../files/collections.md).<a class="headerlink" href="#collection-files" title="Permanent link"></a>"
The `collection_files` attribute is used to define [Collection Files](data/collections.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](../builders/files.md#paths) for how to define them.
<div id="collection-files" />The `collection_files` attribute is used to define
[Collection Files](../files/collections.md) by specifying the path type and path of the files that will be executed
against the parent library. See [File Blocks](files.md) for how to define them.
<hr style="margin: 0px;">
**Attribute:** `collection_files`
**Accepted Values:** Location of Collection YAML files.
**Default Value:** `/config/<<MAPPING_NAME>>.yml`
???+ example "Example"
```yaml
libraries:
@ -132,23 +85,38 @@ libraries:
- pmm: network
```
By default, when `collection_files` is missing Plex Meta Manager will look within the root PMM directory for a collection file called `<MAPPING_NAME>.yml`. In this example, Plex Meta Manager will look for a file named `TV Shows.yml`.
By default, when `collection_files` is missing Plex Meta Manager will look within the root PMM directory for a
collection file called `<MAPPING_NAME>.yml`. In this example, Plex Meta Manager will look for a file named
`TV Shows.yml`.
```yaml
libraries:
TV Shows:
```
### Metadata File
The `metadata_files` attribute is used to define Metadata Files by specifying the path of the files that will be executed against the parent library. See [Path Types](../builders/files.md#paths) for how to define them.
??? blank "`metadata_files` - Used to define [Metadata Files](../files/metadata.md).<a class="headerlink" href="#metadata-files" title="Permanent link"></a>"
<div id="metadata-files" />The `metadata_files` attribute is used to define Metadata Files by specifying the path of
the files that will be executed against the parent library. See [File Blocks](files.md) for how to define them.
???+ tip
As of Plex Meta Manager 1.20.0 "Metadata Files" refers to YAML files which refers to managing the metadata of items [movies, shows, music] within your library, and "Collection Files" refers to YAML files which define Collections.
As of Plex Meta Manager 1.20.0 "Metadata Files" refers to YAML files which refers to managing the metadata of
items [movies, shows, music] within your library, and "Collection Files" refers to YAML files which define
Collections.
In previous version of Plex Meta Manager, "Metadata Files" could mean either of the above.
<hr style="margin: 0px;">
**Attribute:** `metadata_files`
**Accepted Values:** Location of [Metadata Files](../files/metadata.md)
**Default Value:** `None`
???+ example "Example"
```yaml
libraries:
@ -157,9 +125,21 @@ libraries:
- file: config/metadata.yml
```
### Overlay File
??? blank "`overlay_files` - Used to define [Overlay Files](../files/overlays.md).<a class="headerlink" href="#overlay-files" title="Permanent link"></a>"
The `overlay_files` attribute is used to define [Overlay Files](data/overlays.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](../builders/files.md#paths) for how to define them.
<div id="overlay-files" />The `overlay_files` attribute is used to define [Overlay Files](../files/overlays.md) by
specifying the path type and path of the files that will be executed against the parent library. See
[File Blocks](files.md) for how to define them.
<hr style="margin: 0px;">
**Attribute:** `overlay_files`
**Accepted Values:** Location of [Overlay Files](../files/overlays.md)
**Default Value:** `None`
???+ example "Example"
```yaml
libraries:
@ -170,111 +150,538 @@ libraries:
- file: config/Overlays.yml
```
### Special Overlay File Calls
??? blank "`report_path` - Location to save the YAML Report file for a library.<a class="headerlink" href="#report-path" title="Permanent link"></a>"
#### Remove Overlays
<div id="report-path" />The `report_path` attribute is used to define where to save the YAML Report file. This file
is used to store information about what media is added, removed, filtered, and missing from the Plex library
compared to what is expected from the Collection, Metadata, Overlay or Playlist file.
If your Collection file creates a collection with `Movie 1`, `Movie 2` and `Movie 3` but your Plex library only has
`Movie 1` and `Movie 3`, then the missing YAML file will be updated to inform the user that `Movie 2` was missing
from the library.
You can remove overlays from a library by adding `remove_overlays: true` to `overlay_files`.
<hr style="margin: 0px;">
???+ warning "Proceed with Caution"
**Attribute:** `report_path`
**Accepted Values:** Location to save the YAML Report file
**Default Value:** `/config/<<MAPPING_NAME>>_report.yml` where `<<MAPPING_NAME>>` is the name of the library
attribute
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).
???+ example "Example"
If you want to call your Report YAML something different you can like so:
```yaml
libraries:
TV Shows:
Movies:
report_path: /config/My Movie Report.yml
```
Alternatively, Report YAML files can be placed in their own directory, as below:
```yaml
libraries:
Movies:
report_path: /config/reports/Movies.yml
collection_files:
- file: config/TV Shows.yml
- file: config/Movies.yml
overlay_files:
- remove_overlays: true
- file: config/Overlays.yml
```
#### Reapply Overlays
??? blank "`template_variables` - Used to define [Custom Template Variables](../files/templates.md#template-variables) for every file in a library.<a class="headerlink" href="#template-variables" title="Permanent link"></a>"
You can reapply overlays from a library by adding `reapply_overlays: true` to `overlay_files`. This will reapply overlays to every item in your library.
<div id="template-variables" />Passes all given [Template Variables](../files/templates.md#template-variables) to
every template in every Collection, Metadata, and Overlay file run.
???+ danger "Important Notice"
<hr style="margin: 0px;">
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).
**Attribute:** `template_variables`
**Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) of values specified by each particular file.
**Default Value:** `None`
???+ example "Example"
```yaml
libraries:
TV Shows:
Movies:
template_variables:
collection_mode: hide_items
collection_files:
- file: config/TV Shows.yml
- file: config/Movies.yml
overlay_files:
- reapply_overlays: true
- file: config/Overlays.yml
```
#### Reset Overlays
??? blank "`schedule` - Used to schedule when a library is run.<a class="headerlink" href="#schedule" title="Permanent link"></a>"
<div id="schedule" />Used to schedule when a library is run using the [schedule options](schedule.md).
You can reset overlays from a library by adding `reset_overlays` to `overlay_files` 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.
<hr style="margin: 0px;">
???+ danger "Important Notice"
**Attribute:** `schedule`
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).
**Accepted Values:** Any [schedule option](schedule.md)
**Default Value:** `daily`
???+ example "Example"
```yaml
libraries:
TV Shows:
schedule: weekly(sunday)
collection_files:
- file: config/TV Shows.yml
overlay_files:
- reset_overlays: plex
- file: config/Overlays.yml
```
### Schedule Overlays
??? blank "`operations` - Used to specify [Library Operations](operations.md) to run.<a class="headerlink" href="#operations" title="Permanent link"></a>"
<div id="operations" />Used to specify [Library Operations](operations.md) to run.
<hr style="margin: 0px;">
**Attribute:** `operations`
**Accepted Values:** Any [Library Operation](operations.md)
**Default Value:** `None`
???+ example "Example"
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
operations:
mass_critic_rating_update: tmdb
split_duplicates: true
```
??? blank "`remove_overlays` - Used to remove overlays.<a class="headerlink" href="#remove-overlays" title="Permanent link"></a>"
<div id="remove-overlays" />Used to remove overlays from this library only.
???+ warning "Proceed with Caution"
Utill set to `false` or removed this will remove all overlays from your library every run, but will not delete
the overlaid images from your system, resulting in [image bloat](../pmm/scripts/image-cleanup.md).
<hr style="margin: 0px;">
**Attribute:** `remove_overlays`
**Accepted Values:** `true` or `false`
**Default Value:** `false`
???+ example "Example"
```yaml
libraries:
Movies:
remove_overlays: true
collection_files:
- file: config/Movies.yml
overlay_files:
- file: config/Overlays.yml
```
??? blank "`reapply_overlays` - Used to reapply overlays.<a class="headerlink" href="#reapply-overlays" title="Permanent link"></a>"
<div id="reapply-overlays" />Used to reapply overlays from this library only. This will reapply overlays to every item in your library.
???+ warning "Proceed with Caution"
Utill set to `false` or removed this will reapply all overlays on each run, which will result in
[image bloat](../pmm/scripts/image-cleanup.md).
<hr style="margin: 0px;">
**Attribute:** `reapply_overlays`
**Accepted Values:** `true` or `false`
**Default Value:** `false`
???+ example "Example"
```yaml
libraries:
Movies:
reapply_overlays: true
collection_files:
- file: config/Movies.yml
overlay_files:
- file: config/Overlays.yml
```
??? blank "`reset_overlays` - Used to reset overlays.<a class="headerlink" href="#reset-overlays" title="Permanent link"></a>"
<div id="reset-overlays" />Used to reset overlays from this library only. This will reset overlays to every item in
your library to your source choice. This will use the reset image when overlaying items in your library.
???+ warning "Proceed with Caution"
Utill set to `false` or removed this will reset all posters to the desired source on each run and will reapply
all overlays on each run, which will result in [image bloat](../pmm/scripts/image-cleanup.md).
<hr style="margin: 0px;">
**Attribute:** `reset_overlays`
**Accepted Values:** `plex` or `tmdb`
**Default Value:** `None`
???+ example "Example"
```yaml
libraries:
Movies:
reset_overlays: tmdb
collection_files:
- file: config/Movies.yml
overlay_files:
- file: config/Overlays.yml
```
??? blank "`schedule_overlays` - Used to schedule overlays.<a class="headerlink" href="#schedule-overlays" title="Permanent link"></a>"
<div id="schedule-overlays" />Used to schedule overlays to run when desired. Overlays are applied all at once in a
batch therfore you cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each
time PMM is run.
<hr style="margin: 0px;">
You can schedule all overlays from a library by adding `schedule` to `overlay_files` and setting it to [Any Schedule Option](../builders/details/schedule.md).
**Attribute:** `schedule_overlays`
You cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each time PMM is run.
**Accepted Values:** [Any Schedule Option](schedule.md)
???+ tip "Example"
**Default Value:** `daily`
???+ example "Example"
```yaml
libraries:
TV Shows:
schedule: weekly(sunday)
collection_files:
- file: config/TV Shows.yml
overlay_files:
- schedule: weekly(sunday)
- file: config/Overlays.yml
```
### Report Path
??? blank "`settings` - Used to override global [`setting` attributes](settings.md) for this library only.<a class="headerlink" href="#settings" title="Permanent link"></a>"
<div id="settings" />Used to override global [`setting` attributes](settings.md) for this library only.
<hr style="margin: 0px;">
The `report_path` attribute is used to define where to save the YAML Report file. This file is used to store information about what media is added, removed, filtered, and missing from the Plex library compared to what is expected from the Metadata file.
**Attribute:** `settings`
If your Metadata file creates a collection with `Movie 1`, `Movie 2` and `Movie 3` but your Plex library only has `Movie 1` and `Movie 3`, then the missing YAML file will be updated to inform the user that `Movie 2` was missing from the library.
**Accepted Values:** Any [`setting`](settings.md) attribute that overrides a global value.
The default and recommended path is `/config/<<MAPPING_NAME>>report.yml` where `<<MAPPING_NAME>>` is the name of the library attribute, as showcased below:
**Default Value:** Global Value
???+ example "Example"
```yaml
libraries:
Movies:
report_path: /config/Movies_report.yml
collection_files:
- pmm: imdb
settings:
asset_directory: config/asssets/Movies
```
Alternatively, Report YAML files can be placed in their own directory, as below:
??? blank "`plex` - Used to override global [`plex` attributes](plex.md) for this library only.<a class="headerlink" href="#plex" title="Permanent link"></a>"
<div id="plex" />Used to override global [`plex` attributes](plex.md) for this library only.
**`plex` Attribute is required either here or globally**
<hr style="margin: 0px;">
**Attribute:** `plex`
**Accepted Values:** Any [`plex`](plex.md) attribute that overrides a global value.
**Default Value:** Global Value
???+ example "Example"
```yaml
libraries:
Movies:
report_path: /config/reports/Movies.yml
collection_files:
- file: config/Movies.yml
Movies_on_Second_Plex:
library_name: Movies
collection_files:
- file: config/Movies.yml
plex:
url: http://plex.boing.bong
token: SOME_TOKEN
timeout: 360
db_cache: 8192
...
plex:
url: http://plex.bing.bang
token: SOME_TOKEN
timeout: 60
db_cache: 4096
clean_bundles: false
empty_trash: false
optimize: false
...
```
### Library Template Variables
??? blank "`radarr` - Used to override global [`radarr` attributes](radarr.md) for this library only.<a class="headerlink" href="#radarr" title="Permanent link"></a>"
<div id="radarr" />Used to override global [`radarr` attributes](radarr.md) for this library only.
<hr style="margin: 0px;">
**Attribute:** `radarr`
Library template variables to be applied to every Metadata and Overlay file run.
**Accepted Values:** Any [`radarr`](radarr.md) attribute that overrides a global value.
**Default Value:** Global Value
???+ example "Example"
```yaml
libraries:
Library01: # this library uses the default radarr config
collection_files:
- file: config/Movies.yml
Library02: # this library overrides radarr root path and profile
collection_files:
- file: config/Movies.yml
radarr:
root_folder_path: /data/media/movies/tony
quality_profile: Better
Library03: # this library overrides radarr quality profile
collection_files:
- file: config/Movies.yml
radarr:
quality_profile: Best
Library04: # this library uses the 4K radarr instance
collection_files:
- file: config/Movies.yml
radarr:
url: https://radarr-4k.bing.bang
token: SOME_OTHER_TOKEN
root_folder_path: /data/media/movies/geezer
quality_profile: Bestest
Library05: # movies get added by a custom script so they should get added to radarr-4k
collection_files:
- file: config/Movies.yml
radarr:
url: https://radarr-4k.bing.bang
token: SOME_OTHER_TOKEN
root_folder_path: /data/media/movies/bill
quality_profile: Bestest
add_existing: true
sonarr_path: /data/media/movies/bill
plex_path: /mnt/unionfs/movies/bill
...
radarr:
url: https://radarr.bing.bang
token: SOME_TOKEN
quality_profile: Good
add_missing: true
add_existing: false
upgrade_existing: false
root_folder_path: /movies
monitor: movie
availability: released
tag:
search: false
radarr_path:
plex_path:
...
```
??? blank "`sonarr` - Used to override global [`sonarr` attributes](sonarr.md) for this library only.<a class="headerlink" href="#sonarr" title="Permanent link"></a>"
<div id="sonarr" />Used to override global [`sonarr` attributes](sonarr.md) for this library only.
<hr style="margin: 0px;">
**Attribute:** `sonarr`
**Accepted Values:** Any [`sonarr`](sonarr.md) attribute that overrides a global value.
**Default Value:** Global Value
???+ example "Example"
```yaml
libraries:
Library01: # this library uses the default sonarr config
collection_files:
- file: config/TV.yml
Library02: # this library overrides sonarr root path and profile
collection_files:
- file: config/TV.yml
sonarr:
root_folder_path: /data/media/shows/tony
quality_profile: Better
Library03: # this library overrides sonarr quality profile
collection_files:
- file: config/TV.yml
sonarr:
quality_profile: Best
Library04: # this library uses the 4K sonarr instance
collection_files:
- file: config/TV.yml
sonarr:
url: https://sonarr-4k.bing.bang
token: SOME_OTHER_TOKEN
root_folder_path: /data/media/shows/geezer
quality_profile: Bestest
Library05: # shows get added by a custom script so they should get added to sonarr-4k
collection_files:
- file: config/TV.yml
sonarr:
url: https://sonarr-4k.bing.bang
token: SOME_OTHER_TOKEN
root_folder_path: /data/media/shows/bill
quality_profile: Bestest
add_existing: true
sonarr_path: /data/media/shows/bill
plex_path: /mnt/unionfs/shows/bill
...
sonarr:
url: https://sonarr.bing.bang
token: SOME_TOKEN
add_missing: false
add_existing: false
upgrade_existing: false
root_folder_path: /data/media/shows/ozzy
monitor: all
quality_profile: Good
language_profile: English
series_type: standard
season_folder: true
tag:
search: false
cutoff_search: false
sonarr_path:
plex_path:
...
```
??? blank "`tautulli` - Used to override global [`tautulli` attributes](tautulli.md) for this library only.<a class="headerlink" href="#tautulli" title="Permanent link"></a>"
<div id="tautulli" />Used to override global [`tautulli` attributes](tautulli.md) for this library only.
<hr style="margin: 0px;">
**Attribute:** `tautulli`
**Accepted Values:** Any [`tautulli`](tautulli.md) attribute that overrides a global value.
**Default Value:** Global Value
???+ example "Example"
```yaml
libraries:
Movies:
template_variables:
collection_mode: hide_items
collection_files:
- file: config/Movies.yml
TV Shows:
collection_files:
- file: config/TV.yml
tautulli:
url: http://192.168.1.14:8659
apikey: SOME_KEY
...
tautulli:
url: http://192.168.1.12:8659
apikey: SOME_KEY
...
```
### Example
This example is an advanced version of the library mappings which highlights some attributes being set at the global level, and some being set at the library level:
???+ example "Example Library Mappings"
In this example, the `"TV Shows On Second Plex"` library has a library-level `plex` configuration, which takes priority over the `plex` configuration set at the global level.
The `"Anime"` library also has a library-level `radarr` configuration, which takes priority over the `radarr` configuration set at the global level.
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
- pmm: imdb
- pmm: studio
- pmm: genre
- pmm: actor
operations:
mass_critic_rating_update: tmdb
split_duplicates: true
TV Shows:
collection_files:
- file: config/TV Shows.yml
- pmm: tmdb
- pmm: network
overlay_files:
- remove_overlays: false
- file: config/Overlays.yml
TV Shows On Second Plex:
library_name: TV Shows
plex:
url: http://192.168.1.98:32400
token: ####################
collection_files:
- file: config/TV Shows.yml
- pmm: tmdb
- pmm: network
Anime:
collection_files:
- file: config/Anime.yml
- pmm: myanimelist
radarr:
url: http://192.168.1.45:7878
token: ################################
root_folder_path: S:/Anime
settings:
asset_directory: config/assets/anime
plex:
url: http://192.168.1.12:32400
token: ####################
radarr:
url: http://192.168.1.12:7878
token: ################################
add: true
root_folder_path: S:/Movies
monitor: true
availability: announced
quality_profile: HD-1080p
tag: pmm
search: false
```

@ -20,4 +20,5 @@ mdblist:
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
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.

@ -1,6 +1,7 @@
# MyAnimeList Attributes
Configuring [MyAnimeList](https://myanimelist.net/) is optional but is required for MyAnimeList based collections and operations to function.
Configuring [MyAnimeList](https://myanimelist.net/) is optional but is required for MyAnimeList based collections and
operations to function.
A `mal` mapping is in the root of the config file.
@ -26,7 +27,8 @@ mal:
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:
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`
@ -49,16 +51,18 @@ To connect to MyAnimeList.net you must create a MyAnimeList application and supp
15. You should see a page that looks like this
![MAL Details](mal.png)
![MAL Details](images/mal.png)
16. Click "Allow"
17. You will be taken to a page that will not load. That's fine and expected.
![Localhost Failure](localhost-fail.png)
![Localhost Failure](images/localhost-fail.png)
18. Copy the URL, which will be `localhost/?code=BLAH` and paste in your config file next to `localhost_url`.
**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.
@ -68,11 +72,14 @@ To connect to MyAnimeList.net you must create a MyAnimeList application and supp
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.
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/`.
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.
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:
```
@ -89,15 +96,17 @@ On first run:
Click on that URL to open your browser to MyAnimeList; you'll be looking at a page like this:
![MAL Details](mal.png)
![MAL Details](images/mal.png)
Click "Allow", and you will be taken to a page that will not load. That's fine and expected.
![Localhost Failure](localhost-fail.png)
![Localhost Failure](images/localhost-fail.png)
Copy the URL, which will be `localhost/?code=BLAH` and paste it at the prompt.
**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.
@ -111,11 +120,16 @@ You will need to stop that web server while you're doing this in order to grab t
### 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.
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.
## Online Authorization Script
Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration file.
Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely
NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL
and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration
file.
The Online Auth tool can be found [here](https://replit.com/@chazlarson/MALAuth).

@ -1,6 +1,7 @@
# Notifiarr Attributes
Configuring [Notifiarr](https://notifiarr.com) is optional but can allow you to send the [webhooks](webhooks.md) straight to notifiarr.
Configuring [Notifiarr](https://notifiarr.com) is optional but can allow you to send the [webhooks](webhooks.md)
straight to notifiarr.
A `notifiarr` mapping is in the root of the config file.
@ -15,7 +16,8 @@ notifiarr:
|:----------|:-----------------------------------------|:------------------------------------------:|
| `apikey` | Notifiarr API Key | :fontawesome-solid-circle-check:{ .green } |
Once you have added the apikey your config.yml you have to add `notifiarr` to any [webhook](webhooks.md) to send that notification to Notifiarr.
Once you have added the apikey your config.yml you have to add `notifiarr` to any [webhook](webhooks.md) to send that
notification to Notifiarr.
```yaml
webhooks:

@ -20,4 +20,5 @@ omdb:
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
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.

@ -8,6 +8,10 @@ There are a variety of Library Operations that can be utilized in a library.
Within each library, operations can be defined by using the `operations` attribute, as demonstrated below.
When not using a list under `operations` the whole operations value is one block.
???+ example
```yaml
libraries:
Movies:
@ -18,346 +22,375 @@ libraries:
split_duplicates: true
```
The available attributes for the operations attribute are as follows
| Attribute | Description | Movies | Shows | Music |
|:----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------:|:-------------------------------------------:|:-------------------------------------------:|
| [Assets For All](#assets-for-all) | Search in assets for images for every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [Delete Collections](#delete-collections) | Deletes collections based on a set of given attributes. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [Mass Genre Update](#mass-genre-update) | Updates every item's genres in the library to the chosen site's genres. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
| [Mass Content Rating Update](#mass-content-rating-update) | Updates every item's content rating in the library to the chosen site's content rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Original Title Update](#mass-original-title-update) | Updates every item's original title in the library to the chosen site's original title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Studio Update](#mass-studio-update) | Updates every item's studio in the library to the chosen site's studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Originally Available Update](#mass-originally-available-update) | Updates every item's originally available date in the library to the chosen site's date. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass * Rating Update](#mass--rating-update) | Updates every item's audience/critic/user rating in the library to the chosen site's rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Episode * Rating Update](#mass-episode--rating-update) | Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Poster Update](#mass-poster-update) | 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. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Background Update](#mass-background-update) | 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. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass IMDb Parental Labels](#mass-imdb-parental-labels) | Updates every item's labels in the library to match the IMDb Parental Guide. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| [Mass Collection Mode](#mass-collection-mode) | Updates every Collection in your library to the specified Collection Mode. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| [Update Blank Track Titles](#update-blank-track-titles) | Search though every track in a music library and replace any blank track titles with the tracks sort title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
| [Remove Title Parentheses](#remove-title-parentheses) | Search through every title and remove all ending parentheses in an items title if the title is not locked. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Split Duplicates](#split-duplicates) | Splits all duplicate movies/shows found in this library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Radarr Add All](#radarr-add-all) | Adds every item in the library to Radarr. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| [Radarr Remove By Tag](#radarr-remove-by-tag) | Removes every item from Radarr with the Tags given. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
| [Sonarr Add All](#sonarr-add-all) | Adds every item in the library to Sonarr. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Sonarr Remove By Tag](#sonarr-remove-by-tag) | Removes every item from Sonarr with the Tags given. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Genre Mapper](#genre-mapper) | Allows genres to be changed to other genres or be removed from every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Content Rating Mapper](#content-rating-mapper) | Allows content ratings to be changed to other content ratings or be removed from every item in your library. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
| [Metadata Backup](#metadata-backup) | Creates/Maintains a PMM Metadata File with a full `metadata` mapping based on the library's items locked attributes. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
## Assets For All
Search in assets for images for every item in your library.
## Operation Blocks
You can create individual blocks of operations by using a list under `operations` with each item in the list being a
"block" that can be individually scheduled.
???+ example
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
operations:
- schedule: weekly(friday)
mass_critic_rating_update: tmdb
- schedule: weekly(saturday)
split_duplicates: true
```
## Operation Attributes
??? blank "`assets_for_all` - Used to search the asset directories for images for all items in the library.<a class="headerlink" href="#assets-for-all" title="Permanent link"></a>"
<div id="assets-for-all" />Searches the asset directories for images for all items in the library.
<hr style="margin: 0px;">
**Attribute:** `assets_for_all`
**Values:** `true` or `false`
**Accepted Values:** `true` or `false`
???+ example
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
assets_for_all: false
```
## Delete Collections
??? blank "`delete_collections` - Deletes collections based on a set of given attribute.<a class="headerlink" href="#delete-collections" title="Permanent link"></a>"
Deletes collections based on a set of given attributes. The Collection must match all set attributes to be deleted.
<div id="delete-collections" />Deletes collections based on a set of given attributes. The Collection must match all
set attributes to be deleted.
**Attribute:** `delete_collections`
<hr style="margin: 0px;">
**Values:** There are a few different options to determine how the `delete_collections` works.
**Attribute:** `assets_for_all`
| Attribute | Description |
|:-------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `managed` | **Values:**<br>`true`: Collection must be a Managed Collection to be deleted (the collection has the `PMM` label)<br>`false`: Collection must be an Unmanaged Collection to be deleted (the collection does not have the `PMM` label) |
| `configured` | **Values:**<br>`true`: Collection must be a Configured Collection to be deleted (collection is in the config file of the specific PMM run)<br>`false`: Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run).<br>**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.<br>**Values:** Number greater than 0 |
**Accepted Values:** There are a few different options to determine how the `delete_collections` works.
???+ example
<table class="clearTable">
<tr><td>`managed: true`</td><td>Collection must be Managed to be deleted<br>(collection has the `PMM` label)</td></tr>
<tr><td>`managed: false`</td><td>Collection must be Unmanaged to be deleted<br>(collection does not have the `PMM` label)</td></tr>
<tr><td>`configured: true`</td><td>Collection must be Configured to be deleted<br>(collection is in the config file of the specific PMM run)</td></tr>
<tr><td>`configured: false`</td><td>Collection must be Unconfigured to be deleted<br>(collection is not in the config file of the specific PMM run)</td></tr>
<tr><td>`less: ###`</td><td>Collection must contain less then the given number of items to be deleted.<br>### is a Number greater than 0</td></tr>
</table>
**The collection does not need to be scheduled to be considered configured and only needs to be in the config file.**
???+ example "Example"
Removes all Managed Collections (Collections with the `PMM` Label) that are not configured in the Current Run.
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
delete_collections:
configured: false
managed: true
```
## Mass Genre Update
??? blank "`mass_genre_update` - Updates the genres of every item in the library.<a class="headerlink" href="#mass-genre-update" title="Permanent link"></a>"
Updates every item's genres in the library to the chosen site's genres.
<div id="mass-genre-update" />Updates every item's genres in the library to the chosen site's genres.
<hr style="margin: 0px;">
**Attribute:** `mass_genre_update`
**Values:**
| Value | Description |
|:------------|:---------------------------------------------------------------|
| `tmdb` | Use TMDb for Genres |
| `tvdb` | Use TVDb for Genres |
| `imdb` | Use IMDb for Genres |
| `omdb` | Use IMDb through OMDb for Genres |
| `anidb` | Use AniDB Main Tags for Genres |
| `anidb_3_0` | Use AniDB Main Tags and All 3 Star Tags and above for Genres |
| `anidb_2_5` | Use AniDB Main Tags and All 2.5 Star Tags and above for Genres |
| `anidb_2_0` | Use AniDB Main Tags and All 2 Star Tags and above for Genres |
| `anidb_1_5` | Use AniDB Main Tags and All 1.5 Star Tags and above for Genres |
| `anidb_1_0` | Use AniDB Main Tags and All 1 Star Tags and above for Genres |
| `anidb_0_5` | Use AniDB Main Tags and All 0.5 Star Tags and above for Genres |
| `mal` | Use MyAnimeList for Genres |
| `lock` | Lock Genre Field |
| `unlock` | Unlock Genre Field |
| `remove` | Remove all Genres and Lock Field |
| `reset` | Remove all Genres and Unlock Field |
???+ example
**Accepted Values:**
<table class="clearTable">
<tr><td>`tmdb`</td><td>Use TMDb for Genres</td></tr>
<tr><td>`tvdb`</td><td>Use TVDb for Genres</td></tr>
<tr><td>`imdb`</td><td>Use IMDb for Genres</td></tr>
<tr><td>`omdb`</td><td>Use IMDb through OMDb for Genres</td></tr>
<tr><td>`anidb`</td><td>Use AniDB Main Tags for Genres</td></tr>
<tr><td>`anidb_3_0`</td><td>Use AniDB Main Tags and All 3 Star Tags and above for Genres</td></tr>
<tr><td>`anidb_2_5`</td><td>Use AniDB Main Tags and All 2.5 Star Tags and above for Genres</td></tr>
<tr><td>`anidb_2_0`</td><td>Use AniDB Main Tags and All 2 Star Tags and above for Genres</td></tr>
<tr><td>`anidb_1_5`</td><td>Use AniDB Main Tags and All 1.5 Star Tags and above for Genres</td></tr>
<tr><td>`anidb_1_0`</td><td>Use AniDB Main Tags and All 1 Star Tags and above for Genres</td></tr>
<tr><td>`anidb_0_5`</td><td>Use AniDB Main Tags and All 0.5 Star Tags and above for Genres</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList for Genres</td></tr>
<tr><td>`lock`</td><td>Lock all Genre Field</td></tr>
<tr><td>`unlock`</td><td>Unlock all Genre Field</td></tr>
<tr><td>`remove`</td><td>Remove all Genres and Lock all Field</td></tr>
<tr><td>`reset`</td><td>Remove all Genres and Unlock all Field</td></tr>
</table>
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
mass_genre_update: imdb
```
??? blank "`mass_content_rating_update` - Updates the content rating of every item in the library.<a class="headerlink" href="#mass-content-rating-update" title="Permanent link"></a>"
## Mass Content Rating Update
<div id="mass-content-rating-update" />Updates every item's content rating in the library to the chosen site's
content rating.
Updates every item's content rating in the library to the chosen site's content rating.
<hr style="margin: 0px;">
**Attribute:** `mass_content_rating_update`
**Values:**
**Accepted Values:**
| Value | Description |
|:-------------------|:-----------------------------------------------------------------------------|
| `mdb` | Use MdbList for Content Ratings |
| `mdb_commonsense` | Use Commonsense Rating through MDbList for Content Ratings |
| `mdb_commonsense0` | Use Commonsense Rating with Zero Padding through MDbList for Content Ratings |
| `omdb` | Use IMDb through OMDb for Content Ratings |
| `mal` | Use MyAnimeList for Content Ratings |
| `lock` | Lock Content Rating Field |
| `unlock` | Unlock Content Rating Field |
| `remove` | Remove Content Rating and Lock Field |
| `reset` | Remove Content Rating and Unlock Field |
<table class="clearTable">
<tr><td>`mdb`</td><td>Use MdbList for Content Ratings</td></tr>
<tr><td>`mdb_commonsense`</td><td>Use Commonsense Rating through MDbList for Content Ratings</td></tr>
<tr><td>`mdb_commonsense0`</td><td>Use Commonsense Rating with Zero Padding through MDbList for Content Ratings</td></tr>
<tr><td>`omdb`</td><td>Use IMDb through OMDb for Content Ratings</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList for Content Ratings</td></tr>
<tr><td>`lock`</td><td>Lock Content Rating Field</td></tr>
<tr><td>`unlock`</td><td>Unlock Content Rating Field</td></tr>
<tr><td>`remove`</td><td>Remove Content Rating and Lock Field</td></tr>
<tr><td>`reset`</td><td>Remove Content Rating and Unlock Field</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
mass_content_rating_update: omdb
```
## Mass Original Title Update
??? blank "`mass_original_title_update` - Updates the original title of every item in the library.<a class="headerlink" href="#mass-original-title-update" title="Permanent link"></a>"
<div id="mass-original-title-update" />Updates every item's original title in the library to the chosen site's
original title.
Updates every item's original title in the library to the chosen site's original title.
<hr style="margin: 0px;">
**Attribute:** `mass_original_title_update`
**Values:**
**Accepted Values:**
| Value | Description |
|:-----------------|:------------------------------------------------------------------------------------------------|
| `anidb` | Use AniDB Main Title for Original Titles |
| `anidb_official` | Use AniDB Official Title based on the language attribute in the config file for Original Titles |
| `mal` | Use MyAnimeList Main Title for Original Titles |
| `mal_english` | Use MyAnimeList English Title for Original Titles |
| `mal_japanese` | Use MyAnimeList Japanese Title for Original Titles |
| `lock` | Lock Original Title Field |
| `unlock` | Unlock Original Title Field |
| `remove` | Remove Original Title and Lock Field |
| `reset` | Remove Original Title and Unlock Field |
<table class="clearTable">
<tr><td>`anidb`</td><td>Use AniDB Main Title for Original Titles</td></tr>
<tr><td>`anidb_official`</td><td>Use AniDB Official Title based on the language attribute in the config file for Original Titles</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList Main Title for Original Titles</td></tr>
<tr><td>`mal_english`</td><td>Use MyAnimeList English Title for Original Titles</td></tr>
<tr><td>`mal_japanese`</td><td>Use MyAnimeList Japanese Title for Original Titles</td></tr>
<tr><td>`lock`</td><td>Lock Original Title Field</td></tr>
<tr><td>`unlock`</td><td>Unlock Original Title Field</td></tr>
<tr><td>`remove`</td><td>Remove Original Title and Lock Field</td></tr>
<tr><td>`reset`</td><td>Remove Original Title and Unlock Field</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
Anime:
# Metadata and Overlay files here
operations:
mass_original_title_update: anidb_official
```
## Mass Studio Update
??? blank "`mass_studio_update` - Updates the studio of every item in the library.<a class="headerlink" href="#mass-studio-update" title="Permanent link"></a>"
<div id="mass-studio-update" />Updates every item's studio in the library to the chosen site's studio.
Updates every item's studio in the library to the chosen site's studio.
<hr style="margin: 0px;">
**Attribute:** `mass_studio_update`
**Values:**
**Accepted Values:**
| Value | Description |
|:---------|:---------------------------------------|
| `anidb` | Use AniDB Animation Work for Studio |
| `mal` | Use MyAnimeList Studio for Studio |
| `tmdb` | Use TMDb Studio for Studio |
| `lock` | Lock Original Title Field |
| `unlock` | Unlock Original Title Field |
| `remove` | Remove Original Title and Lock Field |
| `reset` | Remove Original Title and Unlock Field |
<table class="clearTable">
<tr><td>`anidb`</td><td>Use AniDB Animation Work for Studio</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList Studio for Studio</td></tr>
<tr><td>`tmdb`</td><td>Use TMDb Studio for Studio</td></tr>
<tr><td>`lock`</td><td>Lock Original Title Field</td></tr>
<tr><td>`unlock`</td><td>Unlock Original Title Field</td></tr>
<tr><td>`remove`</td><td>Remove Original Title and Lock Field</td></tr>
<tr><td>`reset`</td><td>Remove Original Title and Unlock Field</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
Anime:
# Metadata and Overlay files here
operations:
mass_studio_update: mal
```
## Mass Originally Available Update
??? blank "`mass_originally_available_update` - Updates the originally available date of every item in the library.<a class="headerlink" href="#mass-originally-available-update" title="Permanent link"></a>"
Updates every item's originally available date in the library to the chosen site's date.
<div id="mass-originally-available-update" />Updates every item's originally available date in the library to the
chosen site's date.
???+ tip
As plex does not allow this field to be empty, using `remove` or `reset` will set the date to the Plex default date, which is `1969-12-31`
As plex does not allow this field to be empty, using `remove` or `reset` will set the date to the Plex default
date, which is `1969-12-31`
<hr style="margin: 0px;">
**Attribute:** `mass_originally_available_update`
**Values:**
| Value | Description |
|:---------|:---------------------------------------------|
| `tmdb` | Use TMDb Release Date |
| `tvdb` | Use TVDb Release Date |
| `omdb` | Use IMDb Release Date through OMDb |
| `mdb` | Use MdbList Release Date |
| `anidb` | Use AniDB Release Date |
| `mal` | Use MyAnimeList Release Date |
| `lock` | Lock Originally Available Field |
| `unlock` | Unlock Originally Available Field |
| `remove` | Remove Originally Available and Lock Field |
| `reset` | Remove Originally Available and Unlock Field |
**Accepted Values:**
???+ example
<table class="clearTable">
<tr><td>`tmdb`</td><td>Use TMDb Release Date</td></tr>
<tr><td>`tvdb`</td><td>Use TVDb Release Date</td></tr>
<tr><td>`omdb`</td><td>Use IMDb Release Date through OMDb</td></tr>
<tr><td>`mdb`</td><td>Use MdbList Release Date</td></tr>
<tr><td>`anidb`</td><td>Use AniDB Release Date</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList Release Date</td></tr>
<tr><td>`lock`</td><td>Lock Originally Available Field</td></tr>
<tr><td>`unlock`</td><td>Unlock Originally Available Field</td></tr>
<tr><td>`remove`</td><td>Remove Originally Available and Lock Field</td></tr>
<tr><td>`reset`</td><td>Remove Originally Available and Unlock Field</td></tr>
</table>
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_originally_available_update: tvdb
```
## Mass * Rating Update
??? blank "`mass_***_rating_update` - Updates the audience/critic/user rating of every item in the library.<a class="headerlink" href="#mass-star-rating-update" title="Permanent link"></a>"
Updates every item's audience/critic/user rating in the library to the chosen site's rating.
<div id="mass-star-rating-update" />Updates every item's audience/critic/user rating in the library to the chosen
site's rating.
???+ warning "Important Note"
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../pmm/install/guides/ratings.md).
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the
relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then
no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten
Tomatoes. The human who decided to put TMDb ratings in the critic slot and Letterboxd ratings in the audience
slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature
is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found
[here](../pmm/guides/ratings.md).
**Attribute:** `mass_audience_rating_update`/`mass_critic_rating_update`/`mass_user_rating_update`
<hr style="margin: 0px;">
**Values:**
| Value | Description |
|:-----------------------|:----------------------------------------------------|
| `tmdb` | Use TMDb Rating |
| `imdb` | Use IMDb Rating |
| `trakt_user` | Use Trakt User's Personal Rating |
| `omdb` | Use IMDbRating through OMDb |
| `mdb` | Use MdbList Score |
| `mdb_average` | Use MdbList Average Score |
| `mdb_imdb` | Use IMDb Rating through MDbList |
| `mdb_metacritic` | Use Metacritic Rating through MDbList |
| `mdb_metacriticuser` | Use Metacritic User Rating through MDbList |
| `mdb_trakt` | Use Trakt Rating through MDbList |
| `mdb_tomatoes` | Use Rotten Tomatoes Rating through MDbList |
| `mdb_tomatoesaudience` | Use Rotten Tomatoes Audience Rating through MDbList |
| `mdb_tmdb` | Use TMDb Rating through MDbList |
| `mdb_letterboxd` | Use Letterboxd Rating through MDbList |
| `mdb_myanimelist` | Use MyAnimeList Rating through MDbList |
| `anidb_rating` | Use AniDB Rating |
| `anidb_average` | Use AniDB Average |
| `anidb_score` | Use AniDB Review Score |
| `mal` | Use MyAnimeList Score |
| `lock` | Lock Rating Field |
| `unlock` | Unlock Rating Field |
| `remove` | Remove Rating and Lock Field |
| `reset` | Remove Rating and Unlock Field |
**Attribute:** `mass_audience_rating_update`/`mass_critic_rating_update`/`mass_user_rating_update`
???+ example
**Accepted Values:**
<table class="clearTable">
<tr><td>`tmdb`</td><td>Use TMDb Rating</td></tr>
<tr><td>`imdb`</td><td>Use IMDb Rating</td></tr>
<tr><td>`trakt_user`</td><td>Use Trakt User's Personal Rating</td></tr>
<tr><td>`omdb`</td><td>Use IMDbRating through OMDb</td></tr>
<tr><td>`mdb`</td><td>Use MdbList Score</td></tr>
<tr><td>`mdb_average`</td><td>Use MdbList Average Score</td></tr>
<tr><td>`mdb_imdb`</td><td>Use IMDb Rating through MDbList</td></tr>
<tr><td>`mdb_metacritic`</td><td>Use Metacritic Rating through MDbList</td></tr>
<tr><td>`mdb_metacriticuser`</td><td>Use Metacritic User Rating through MDbList</td></tr>
<tr><td>`mdb_trakt`</td><td>Use Trakt Rating through MDbList</td></tr>
<tr><td>`mdb_tomatoes`</td><td>Use Rotten Tomatoes Rating through MDbList</td></tr>
<tr><td>`mdb_tomatoesaudience`</td><td>Use Rotten Tomatoes Audience Rating through MDbList</td></tr>
<tr><td>`mdb_tmdb`</td><td>Use TMDb Rating through MDbList</td></tr>
<tr><td>`mdb_letterboxd`</td><td>Use Letterboxd Rating through MDbList</td></tr>
<tr><td>`mdb_myanimelist`</td><td>Use MyAnimeList Rating through MDbList</td></tr>
<tr><td>`anidb_rating`</td><td>Use AniDB Rating</td></tr>
<tr><td>`anidb_average`</td><td>Use AniDB Average</td></tr>
<tr><td>`anidb_score`</td><td>Use AniDB Review Score</td></tr>
<tr><td>`mal`</td><td>Use MyAnimeList Score</td></tr>
<tr><td>`lock`</td><td>Lock Rating Field</td></tr>
<tr><td>`unlock`</td><td>Unlock Rating Field</td></tr>
<tr><td>`remove`</td><td>Remove Rating and Lock Field</td></tr>
<tr><td>`reset`</td><td>Remove Rating and Unlock Field</td></tr>
</table>
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
mass_audience_rating_update: mdb_average
mass_critic_rating_update: mdb_metacritic
mass_user_rating_update: imdb
```
## Mass Episode * Rating Update
Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating.
??? blank "`mass_episode_***_rating_update` - Updates the audience/critic/user rating of every episode in the library.<a class="headerlink" href="#mass-episode-star-rating-update" title="Permanent link"></a>"
<div id="mass-episode-star-rating-update" />Updates every item's episode's audience/critic/user rating in the
library to the chosen site's rating.
???+ warning "Important Note"
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../pmm/install/guides/ratings.md).
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the
relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then
no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten
Tomatoes. The human who decided to put TMDb ratings in the critic slot and Letterboxd ratings in the audience
slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature
is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found
[here](../pmm/guides/ratings.md).
<hr style="margin: 0px;">
**Attribute:** `mass_episode_audience_rating_update`/`mass_episode_critic_rating_update`/`mass_episode_user_rating_update`
**Values:**
**Accepted Values:**
| Value | Description |
|:---------|:-------------------------------|
| `tmdb` | Use TMDb Rating |
| `imdb` | Use IMDb Rating |
| `lock` | Lock Rating Field |
| `unlock` | Unlock Rating Field |
| `remove` | Remove Rating and Lock Field |
| `reset` | Remove Rating and Unlock Field |
<table class="clearTable">
<tr><td>`tmdb`</td><td>Use TMDb Rating</td></tr>
<tr><td>`imdb`</td><td>Use IMDb Rating</td></tr>
<tr><td>`lock`</td><td>Lock Rating Field</td></tr>
<tr><td>`unlock`</td><td>Unlock Rating Field</td></tr>
<tr><td>`remove`</td><td>Remove Rating and Lock Field</td></tr>
<tr><td>`reset`</td><td>Remove Rating and Unlock Field</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_episode_audience_rating_update: tmdb
mass_episode_critic_rating_update: remove
mass_episode_user_rating_update: imdb
```
## Mass Poster Update
Updates every item's poster to the chosen sites poster. Will fall back to `plex` if the given option fails. Assets will be used over anything else.
??? blank "`mass_poster_update` - Updates the poster of every item in the library.<a class="headerlink" href="#mass-poster-update" title="Permanent link"></a>"
<div id="mas-_poster-update" />Updates every item's poster to the chosen sites poster. Will fall back 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).
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/scripts/image-cleanup.md).
<hr style="margin: 0px;">
**Attribute:** `mass_poster_update`
**Values:** There are a few different options to determine how the `mass_poster_update` works.
**Accepted Values:**
| Attribute | Description |
|:--------------------|:----------------------------------------------------------------------------------------------------|
| `source` | Source of the poster update<br>**Values:** `tmdb`, `plex`, `lock`, or `unlock` |
| `seasons` | Update season posters while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
| `episodes` | Update episode posters while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
<table class="clearTable">
<tr><td>`source`</td><td>Source of the poster update</td><td>`tmdb`, `plex`, `lock`, or `unlock`</td></tr>
<tr><td>`seasons`</td><td>Update season posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr>
<tr><td>`episodes`</td><td>Update episode posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_poster_update:
source: tmdb
@ -365,30 +398,33 @@ Updates every item's poster to the chosen sites poster. Will fall back to `plex`
episodes: false
```
## Mass Background Update
??? blank "`mass_background_update` - Updates the background of every item in the library.<a class="headerlink" href="#mass-background-update" title="Permanent link"></a>"
Updates every item's background to the chosen sites background. Will fall back to `plex` if the given option fails. Assets will be used over anything else.
<div id="mass-background-update" />Updates every item's background to the chosen sites background. Will fall back 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).
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/scripts/image-cleanup.md).
**Attribute:** `mass_background_update`
<hr style="margin: 0px;">
**Values:** There are a few different options to determine how the `mass_background_update` works.
**Attribute:** `mass_poster_update`
| Attribute | Description |
|:--------------------|:--------------------------------------------------------------------------------------------------------|
| `source` | Source of the background update<br>**Values:** `tmdb`, `plex`, `lock`, or `unlock` |
| `seasons` | Update season backgrounds while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
| `episodes` | Update episode backgrounds while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
**Accepted Values:**
???+ example
<table class="clearTable">
<tr><td>`source`</td><td>Source of the poster update</td><td>`tmdb`, `plex`, `lock`, or `unlock`</td></tr>
<tr><td>`seasons`</td><td>Update season posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr>
<tr><td>`episodes`</td><td>Update episode posters while updating shows **Default:** `true`</td><td>`true` (default) or `false`</td></tr>
</table>
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_background_update:
source: tmdb
@ -396,196 +432,224 @@ Updates every item's background to the chosen sites background. Will fall back t
episodes: false
```
## Mass IMDb Parental Labels
??? blank "`mass_imdb_parental_labels` - Adds IMDb Parental labels of every item in the library.<a class="headerlink" href="#mass-imdb-parental-labels" title="Permanent link"></a>"
<div id="mass-imdb-parental-labels" />Updates every item's labels in the library to match the IMDb Parental Guide.
Updates every item's labels in the library to match the IMDb Parental Guide.
<hr style="margin: 0px;">
**Attribute:** `mass_imdb_parental_labels`
**Values:**
**Accepted Values:**
| Value | Description |
|:-----------|:----------------------------------------------------------------------------------|
| `none` | Apply all Parental Labels with a value of `None`, `Mild`, `Moderate`, or `Severe` |
| `mild` | Apply all Parental Labels with a value of `Mild`, `Moderate`, or `Severe` |
| `moderate` | Apply all Parental Labels with a value of `Moderate` or `Severe` |
| `severe` | Apply all Parental Labels with a value of `Severe` |
<table class="clearTable">
<tr><td>`none`</td><td>Apply all Parental Labels with a value of `None`, `Mild`, `Moderate`, or `Severe`</td></tr>
<tr><td>`mild`</td><td>Apply all Parental Labels with a value of `Mild`, `Moderate`, or `Severe`</td></tr>
<tr><td>`moderate`</td><td>Apply all Parental Labels with a value of `Moderate` or `Severe`</td></tr>
<tr><td>`severe`</td><td>Apply all Parental Labels with a value of `Severe`</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_imdb_parental_labels: severe
```
## Mass Collection Mode
??? blank "`mass_collection_mode` - Updates the Collection Mode of every item in the library.<a class="headerlink" href="#mass-collection-mode" title="Permanent link"></a>"
<div id="mass-collection-mode" />Updates every Collection in your library to the specified Collection Mode.
Updates every Collection in your library to the specified Collection Mode.
<hr style="margin: 0px;">
**Attribute:** `mass_collection_mode`
**Values:**
**Accepted Values:**
| Value | Description |
|:-------------|:-----------------------------------|
| `default` | Library default |
| `hide` | Hide Collection |
| `hide_items` | Hide Items in this Collection |
| `show_items` | Show this Collection and its Items |
<table class="clearTable">
<tr><td>`default`</td><td>Library default</td></tr>
<tr><td>`hide`</td><td>Hide Collection</td></tr>
<tr><td>`hide_items`</td><td>Hide Items in this Collection</td></tr>
<tr><td>`show_items`</td><td>Show this Collection and its Items</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_collection_mode: hide
```
## Update Blank Track Titles
??? blank "`update_blank_track_titles` - Updates blank track titles of every item in the library.<a class="headerlink" href="#update-blank-track-titles" title="Permanent link"></a>"
<div id="update-blank-track-titles" />Search though every track in a music library and replace any blank track
titles with the tracks sort title.
Search though every track in a music library and replace any blank track titles with the tracks sort title.
<hr style="margin: 0px;">
**Attribute:** `update_blank_track_titles`
**Values:** `true` or `false`
**Accepted Values:** `true` or `false`
???+ example
???+ example "Example"
```yaml
libraries:
Music:
# Metadata and Overlay files here
operations:
update_blank_track_titles: true
```
## Remove Title Parentheses
??? blank "`remove_title_parentheses` - Removes title parentheses of every item in the library.<a class="headerlink" href="#remove-title-parentheses" title="Permanent link"></a>"
<div id="remove-title-parentheses" />Search through every title and remove all ending parentheses in an items title
if the title is not locked.
Search through every title and remove all ending parentheses in an items title if the title is not locked.
<hr style="margin: 0px;">
**Attribute:** `remove_title_parentheses`
**Values:** `true` or `false`
**Accepted Values:** `true` or `false`
???+ example
???+ example "Example"
```yaml
libraries:
Music:
# Metadata and Overlay files here
operations:
remove_title_parentheses: true
```
## Split Duplicates
??? blank "`split_duplicates` - Splits all duplicate items found in this library.<a class="headerlink" href="#split-duplicates" title="Permanent link"></a>"
<div id="split-duplicates" />Splits all duplicate items found in this library.
Splits all duplicate movies/shows found in this library.
<hr style="margin: 0px;">
**Attribute:** `split_duplicates`
**Values:** `true` or `false`
**Accepted Values:** `true` or `false`
???+ example
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
split_duplicates: true
```
## Radarr Add All
??? blank "`radarr_add_all` - Adds every item in the library to Radarr.<a class="headerlink" href="#radarr-add-all" title="Permanent link"></a>"
Adds every item in the library to Radarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Radarr paths you can use the `plex_path` and `radarr_path` [Radarr](radarr.md) details to convert the paths.
<div id="radarr-add-all" />Adds every item in the library to Radarr.
???+ warning
The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same
as your Radarr paths you can use the `plex_path` and `radarr_path` [Radarr](radarr.md) details to convert the
paths.
<hr style="margin: 0px;">
**Attribute:** `radarr_add_all`
**Values:** `true` or `false`
**Accepted Values:** `true` or `false`
???+ example
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
radarr_add_all: true
```
## Radarr Remove By Tag
??? blank "`radarr_remove_by_tag` - Removes every item from Radarr with the Tags given.<a class="headerlink" href="#radarr-remove-by-tag" title="Permanent link"></a>"
<div id="radarr-remove-by-tag" />Removes every item from Radarr with the Tags given.
Removes every item from Radarr with the Tags given.
<hr style="margin: 0px;">
**Attribute:** `radarr_remove_by_tag`
**Values:** List or comma separated string of tags
**Accepted Values:** List or comma separated string of tags
???+ example
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
radarr_remove_by_tag: mytag1, mytag2
```
## Sonarr Add All
??? blank "`sonarr_add_all` - Adds every item in the library to Sonarr.<a class="headerlink" href="#sonarr-add-all" title="Permanent link"></a>"
<div id="sonarr-add-all" />Adds every item in the library to Sonarr.
???+ warning
The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same
as your Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr.md) details to convert the
paths.
Adds every item in the library to Sonarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr.md) details to convert the paths.
<hr style="margin: 0px;">
**Attribute:** `sonarr_add_all`
**Values:** `true` or `false`
**Accepted Values:** `true` or `false`
???+ example
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
sonarr_add_all: true
```
## Sonarr Remove By Tag
??? blank "`sonarr_remove_by_tag` - Removes every item from Sonarr with the Tags given.<a class="headerlink" href="#sonarr-remove-by-tag" title="Permanent link"></a>"
<div id="sonarr-remove-by-tag" />Removes every item from Sonarr with the Tags given.
Removes every item from Sonarr with the Tags given.
<hr style="margin: 0px;">
**Attribute:** `sonarr_remove_by_tag`
**Values:** List or comma separated string of tags
**Accepted Values:** List or comma separated string of tags
???+ example
???+ example "Example"
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
sonarr_remove_by_tag: mytag1, mytag2
```
## Genre Mapper
??? blank "`genre_mapper` - Maps genres in your library to be changed to other genres.<a class="headerlink" href="#genre-mapper" title="Permanent link"></a>"
<div id="genre-mapper" />Maps genres in your library to be changed to other genres.
Maps genres in your library to be changed to other genres.
<hr style="margin: 0px;">
**Attribute:** `genre_mapper`
**Values:** Each attribute under `genre_mapper` is a separate mapping and has two parts.
**Accepted Values:** Each attribute under `genre_mapper` is a separate mapping and has two parts.
* The key (`Action/Adventure, Action & Adventure` in the example below) is what genres you want mapped to the value.
* The value (`Action` in the example below) is what the genres will end up as.
<table class="clearTable">
<tr><td>`key`</td><td>Genre you want mapped to the value</td><td>`Action/Adventure, Action & Adventure` in the example below</td></tr>
<tr><td>`value`</td><td>What the genre will end up as</td><td>`Action` in the example below</td></tr>
</table>
???+ example
???+ example "Example"
This example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and `Romantic Comedy` to `Comedy`.
This example will change go through every item in your library and change the genre `Action/Adventure` or
`Action & Adventure` to `Action` and `Romantic Comedy` to `Comedy`.
```yaml
libraries:
@ -611,22 +675,28 @@ Maps genres in your library to be changed to other genres.
Romantic Comedy:
```
The above example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and remove every instance of the Genre `Romantic Comedy`.
The above example will change go through every item in your library and change the genre `Action/Adventure` or
`Action & Adventure` to `Action` and remove every instance of the Genre `Romantic Comedy`.
??? blank "`content_rating_mapper` - Maps content ratings in your library to be changed to other content ratings.<a class="headerlink" href="#content-rating-mapper" title="Permanent link"></a>"
## Content Rating Mapper
<div id="content-rating-mapper" />Maps content ratings in your library to be changed to other content ratings.
Maps content ratings in your library to be changed to other content ratings.
<hr style="margin: 0px;">
**Attribute:** `content_rating_mapper`
**Values:** Each attribute under `content_rating_mapper` is a separate mapping and has two parts.
**Accepted Values:** Each attribute under `content_rating_mapper` is a separate mapping and has two parts.
* The key (`PG`, `PG-13` in the example below) is what content ratings you want mapped to the value.
* The value (`Y-10` in the example below) is what the content ratings will end up as.
<table class="clearTable">
<tr><td>`key`</td><td>Content rating you want mapped to the value</td><td>`PG`, `PG-13` in the example below</td></tr>
<tr><td>`value`</td><td>What the content rating will end up as</td><td>`Y-10` in the example below</td></tr>
</table>
???+ example
???+ example "Example"
This example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and `R` to `Y-17`.
This example will change go through every item in your library and change the content rating `PG` or `PG-13` to
`Y-10` and `R` to `Y-17`.
```yaml
libraries:
@ -652,31 +722,35 @@ Maps content ratings in your library to be changed to other content ratings.
R:
```
The above example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and remove every instance of the content rating `R`.
The above example will change go through every item in your library and change the content rating `PG` or
`PG-13` to `Y-10` and remove every instance of the content rating `R`.
## Metadata Backup
??? blank "`metadata_backup` - Creates/Maintains a PMM Metadata File for the library.<a class="headerlink" href="#metadata-backup" title="Permanent link"></a>"
Creates/Maintains a Plex Meta Manager Metadata File with a full `metadata` mapping based on the library's items locked attributes.
<div id="metadata-backup" />Creates/Maintains a Plex Meta Manager Metadata File with a full `metadata` mapping based
on the library's items locked attributes.
If you point to an existing Metadata File then PMM will Sync the changes to the file, so you won't lose non plex changes in the file.
If you point to an existing Metadata File then PMM will Sync the changes to the file, so you won't lose non plex
changes in the file.
<hr style="margin: 0px;">
**Attribute:** `metadata_backup`
**Values:** There are a few different options to determine how the `metadata_backup` works.
**Accepted Values:** There are a few different options to determine how the `metadata_backup` works.
| Attribute | Description |
|:--------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `path` | Path to where the metadata will be saved/maintained<br>**Default:** <<library_name>>_Metadata_Backup.yml in your config folder<br>**Values:** Path to Metadata File |
| `exclude` | Exclude all listed attributes from being saved in the collection file<br>**Values:** Comma-separated string or list of attributes |
| `sync_tags` | All Tag Attributes will have the `.sync` option and blank attribute will be added to sync to as well<br>**Default:** `false`<br>**Values:** `true` or `false` |
| `add_blank_entries` | Will add a line for entries that have no metadata changes<br>**Default:** `true`<br>**Values:** `true` or `false` |
<table class="clearTable">
<tr><td>`path`</td><td>Path to where the metadata will be saved/maintained<br>**Default:** `<<library_name>>_Metadata_Backup.yml in your config folder`<br>**Values:** Path to Metadata File</td></tr>
<tr><td>`exclude`</td><td>Exclude all listed attributes from being saved in the collection file<br>**Values:** `Comma-separated string or list of attributes`</td></tr>
<tr><td>`sync_tags`</td><td>All Tag Attributes will have the `.sync` option and blank attribute will be added to sync<br>**Default:** `false`<br>**Values:** `true` or `false`</td></tr>
<tr><td>`add_blank_entries`</td><td>Will add a line for entries that have no metadata changes<br>**Default:** `true`<br>**Values:** `true` or `false`</td></tr>
</table>
???+ example
???+ example "Example"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
metadata_backup:
path: config/Movie_Backup.yml

@ -0,0 +1,42 @@
# Config File
Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager
behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other
third-party services via API.
By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`.
A template Configuration File can be found in the
[GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template).
This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific
requirements for setup that can be found by clicking the links within the table.
| Attribute | Required |
|:--------------------------------------------|:----------------------------------------------------------------------|
| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } |
| [`playlist_files`](../notused/playlists.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library |
| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } |
| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } |
| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } |
## Configuration File Example
This example outlines what a "standard" config.yml file might look like when in use.
~~~yaml
{%
include-markdown "../../config/config.yml.template"
comments=false
%}
~~~

@ -1,10 +1,14 @@
# Playlist Files Attributes
# Playlist Files Attribute
As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](data/playlists.md) to work.
As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own
special [Playlist Files](../files/playlists.md) to work.
Within the [Config File](configuration.md), the `playlist_files` attribute specifies the [path type](../builders/files.md#paths) and path of the [Playlist Files](data/playlists.md) that the user wants Plex Meta Manager to act on.
Within the [Configuration File](overview.md), the `playlist_files` attribute specifies the
[File Blocks](../config/files.md#blocks) of the [Playlist Files](../files/playlists.md) that the user wants Plex Meta
Manager to act on.
**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the [Config File](configuration.md).**
**The libraries used in the playlist attribute `libraries` must be defined under the `libraries` attribute of the
[Configuration File](overview.md).**
```yaml
playlist_files:
@ -12,7 +16,7 @@ playlist_files:
- pmm: playlist
```
## Example
???+ example "Example"
This example is an advanced version of the playlist mappings with accompanying library mappings:
@ -33,8 +37,8 @@ libraries:
- file: config/TV Shows.yml
- pmm: tmdb
- pmm: network
remove_overlays: false
overlay_files:
- remove_overlays: false
- file: config/Overlays.yml
playlist_files:
- file: config/playlists.yml

@ -6,7 +6,8 @@ search:
Configuring [Plex](https://www.plex.tv/) is required in order to connect to your libraries.
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.
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:
@ -35,14 +36,17 @@ plex:
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/).
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`.
# Multi-Plex Instance Setup:
The below config.yml extract details how to set up multiple Plex servers within the one PMM instance, in this example there are two plex servers which are receiving the same Collection File:
The below config.yml extract details how to set up multiple Plex servers within the one PMM instance, in this example
there are two plex servers which are receiving the same Collection File:
```yaml
libraries:
@ -70,8 +74,13 @@ plex:
...
```
The `plex` instance at the bottom is the "global" plex server. Unless otherwise specified, any connection to plex is assumed to be using that plex server. The first "Movies" library entry is on the global `plex` server.
The `plex` instance at the bottom is the "global" plex server. Unless otherwise specified, any connection to plex is
assumed to be using that plex server. The first "Movies" library entry is on the global `plex` server.
The "Movies_on_Second_Plex" library is found on the second plex server. Note that this library has its own plex section that lists the attributes that differ from the global plex instance, namely the `URL`, `token` and `timeout`. The library on the second server is also called "Movies", but since you can't have two keys (in this scenario, libraries) with the same name, it is named Movies_on_Second_Plex in the config.yml, and the `library_name:` attribute contains the name of the library on the actual plex server.
The "Movies_on_Second_Plex" library is found on the second plex server. Note that this library has its own plex section
that lists the attributes that differ from the global plex instance, namely the `URL`, `token` and `timeout`. The
library on the second server is also called "Movies", but since you can't have two keys (in this scenario, libraries)
with the same name, it is named Movies_on_Second_Plex in the config.yml, and the `library_name:` attribute contains the
name of the library on the actual plex server.

@ -4,17 +4,20 @@ search:
---
# Radarr Attributes
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.
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.
???+ note
???+ warning
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.
A `radarr` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify the `radarr` mapping individually per library.
A `radarr` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify
the `radarr` mapping individually per library.
At the library level, only those settings which are different to the global settings need to be specified; there is an example of this at the end of the page.
At the library level, only those settings which are different to the global settings need to be specified; there is an
example of this at the end of the page.
Below is a `radarr` mapping example and the full set of attributes:
```yaml
@ -35,19 +38,19 @@ radarr:
```
| Attribute | Allowed Values | Default | Required |
|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------|:------------------------------------------:|
|:-------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------|:------------------------------------------:|
| `url` | Radarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | :fontawesome-solid-circle-check:{ .green } |
| `token` | Radarr API Token. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `add_missing` | Adds all missing movies found from all collections to Radarr.<br>Use the `radarr_add_missing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `add_existing` | Adds all existing movies in collections to Radarr.<br>Use the `radarr_add_existing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.<br>Use the `radarr_upgrade_existing` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.<br>Use the `radarr_ignore_cache` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `root_folder_path` | Default Root Folder Path to use when adding new movies.<br>Use the `radarr_folder` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `monitor` | Monitor the movie when adding new movies.<br>Use the `radarr_monitor` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Options:** `true`, `false` | true | :fontawesome-solid-circle-xmark:{ .red } |
| `availability` | Default Minimum Availability to use when adding new movies.<br>Use the `radarr_availability` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.<br>**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | :fontawesome-solid-circle-check:{ .green } |
| `quality_profile` | Default Quality Profile to use when adding new movies.<br>Use the `radarr_quality` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `tag` | Default list or comma-separated string of tags to use when adding new movies.<br>Use the `radarr_tag` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the Tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
| `search` | Start search for missing movie when adding new movies.<br>Use the `radarr_search` [Radarr Details](../builders/details/arr.md#radarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `add_missing` | Adds all missing movies found from all collections to Radarr.<br>Use the `radarr_add_missing` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `add_existing` | Adds all existing movies in collections to Radarr.<br>Use the `radarr_add_existing` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `upgrade_existing` | Upgrades all existing movies in collections to match the Quality Profile of the collection.<br>Use the `radarr_upgrade_existing` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `ignore_cache` | Ignores PMM's cache when adding items to Radarr.<br>Use the `radarr_ignore_cache` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `root_folder_path` | Default Root Folder Path to use when adding new movies.<br>Use the `radarr_folder` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `monitor` | Monitor the movie when adding new movies.<br>Use the `radarr_monitor` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Options:** `true`, `false` | true | :fontawesome-solid-circle-xmark:{ .red } |
| `availability` | Default Minimum Availability to use when adding new movies.<br>Use the `radarr_availability` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Availability per collection.<br>**Options:** `announced`, `cinemas`, `released`, `db` | `announced` | :fontawesome-solid-circle-check:{ .green } |
| `quality_profile` | Default Quality Profile to use when adding new movies.<br>Use the `radarr_quality` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `tag` | Default list or comma-separated string of tags to use when adding new movies.<br>Use the `radarr_tag` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the Tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
| `search` | Start search for missing movie when adding new movies.<br>Use the `radarr_search` [Radarr Setting](../files/arr.md#radarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `plex_path` | When using `add_existing` or `radarr_add_all` Convert this part of the path to `radarr_path`. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
| `radarr_path` | When using `add_existing` or `radarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
@ -55,13 +58,16 @@ radarr:
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.
* You can set most attributes per collection by using the [Radarr Settings](../files/arr.md#radarr-definition-settings)
in the collection definition.
![Radarr Details](radarr.png)
![Radarr Details](images/radarr.png)
Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are of course required they are not shown here to focus on the settings that are shown above]:
Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are
of course required they are not shown here to focus on the settings that are shown above]:
```yaml
radarr:
@ -84,7 +90,9 @@ radarr:
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.
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:

@ -0,0 +1,191 @@
# Scheduling Parts of PMM
Plex Meta Manager allows you to schedule libraries, files, overlays, operations, and more so that runs can be tailored
to suit your needs.
This is particularly handy for users who have a lot of libraries or run a lot of Metadata/Operations on their libraries.
### IMPORTANT:
These schedules do not trigger PMM to run; they control what PMM will do if it happens to be running at the scheduled
time. `weekly(sunday)`, for example, does not mean "run PMM on Sunday to do this thing"; it means "If PMM is running,
and it's Sunday, do this thing".
The scheduling options are:
| Name | Description | Format | Example |
|:-------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------|:---------------------------------------------------------------------|
| Hourly | Update only when the script is run in that hour or hour range | hourly(Hour of Day)<br>hourly(Start Hour-End Hour) | `hourly(17)`<br>`hourly(17-04)` |
| Daily | Update once a day | daily | `daily` |
| Weekly | Update once a week on the specified days (For multiple days, use a bar-separated (<code>&#124;</code>) list) | weekly(Days of Week) | `weekly(sunday)`<br><code>weekly(sunday&#124;tuesday)</code> |
| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` |
| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` |
| Range | Updates whenever the date is within the range (For multiple ranges, use a bar-separated (<code>&#124;</code>) list) | range(MM/DD-MM/DD) | `range(12/01-12/31)`<br><code>range(8/01-8/15&#124;9/01-9/15)</code> |
| Never | Never updates | never | `never` |
| Non Existing | Updates if it doesn't exist | non_existing | `non_existing` |
| All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` |
* `daily` is the default when `schedule` is not specified.
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../pmm/environmental.md).
* You can have multiple scheduling options as a list.
* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled.
## Examples
??? blank "Scheduling a Library<a class="headerlink" href="#schedule-library" title="Permanent link"></a>"
<div id="schedule-library" />Uses the `schedule` [Library Attribute](libraries.md#Attributes) to set when a library will be run.
Other schedule rules for files, overlays, collections, and any other attribute that can be scheduled must also be
met.
???+ example "Example"
Below is an example of a library which has been scheduled to run every Sunday.
```yaml
libraries:
Movies:
schedule: weekly(sunday)
collection_files:
- file: config/Movies.yml
- pmm: imdb
- pmm: studio
- pmm: genre
- pmm: actor
operations:
mass_critic_rating_update: tmdb
```
??? blank "Scheduling Collection, Playlist, and Metadata Files<a class="headerlink" href="#schedule-files" title="Permanent link"></a>"
<div id="schedule-files" />Uses the `schedule` [Block Attribute](files.md#Other-Block-Attributes) to set when a file
will be run.
Other schedule rules for collections and any other attribute that can be scheduled must also be met.
???+ example "Example"
Collection Files, Playlist Files, and Metadata Files can all be individually scheduled, as seen below where
different files are scheduled to run on each day of the week:
```yaml
libraries:
Movies:
collection_files:
- file: config/Movies.yml
schedule: weekly(monday)
- pmm: imdb
schedule: weekly(tuesday)
- folder: config/Movies/
schedule: weekly(wednesday)
- pmm: genre
schedule: weekly(thursday)
- pmm: actor
schedule: weekly(friday)
metadata_files:
- file: config/metadata.yml
schedule: weekly(saturday)
playlist_files:
- file: config/Playlists.yml
schedule: weekly(sunday)
```
??? blank "Scheduling Overlays<a class="headerlink" href="#schedule-overlays" title="Permanent link"></a>"
<div id="schedule-overlays" />Uses the `schedule_overlays` [Library Attribute](libraries.md#attributes) to set when
overlays will run for a library.
**Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.**
???+ example "Example"
In the Example below overlays will only be run weekly on Saturday.
```yaml
libraries:
Movies:
schedule_overlays: weekly(saturday)
overlay_files:
- pmm: audio_codec
- pmm: resolution
- pmm: video_format
```
??? blank "Scheduling Individual Collections<a class="headerlink" href="#schedule-collection" title="Permanent link"></a>"
<div id="schedule-collection" />Uses the `schedule` [Definition Setting](../files/settings.md) to set when this
collection will run.
???+ example "Example"
Below is an example of a collection which has been scheduled to run on a Sunday. In this scenario, if you run
PMM on a Monday, this collection will be skipped but any other collections which do not have a scheduled defined
will be run.
```yaml
collections:
TMDb Trending Weekly:
tmdb_trending_weekly: 30
sync_mode: sync
schedule: weekly(sunday)
TMDb Top Rated:
tmdb_top_rated: 30
sync_mode: sync
schedule:
- monthly(1)
- monthly(15)
```
??? blank "Scheduling Operation Blocks<a class="headerlink" href="#schedule-operations" title="Permanent link"></a>"
<div id="schedule-operations" />Each [Operation Block](operations.md#operation-blocks) can use the `schedule`
[Definition Setting](../files/settings.md) to set when that block will run.
???+ example "Example"
This example shows just one Operation Block scheduled weekly on fridays.
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
operations:
schedule: weekly(friday)
mass_critic_rating_update: tmdb
split_duplicates: true
```
This example shows 2 Operation Blocks each with a differnet schedule.
```yaml
libraries:
Movies:
collection_files:
- pmm: imdb
operations:
- schedule: weekly(friday)
mass_critic_rating_update: tmdb
- schedule: weekly(saturday)
split_duplicates: true
```
??? blank "Scheduling Pinning Collections<a class="headerlink" href="#schedule-pinning" title="Permanent link"></a>"
<div id="schedule-pinning" />Uses the `visible_library`, `visible_home`, or `visible_shared`
[Collection Metadata Update](../files/updates.md) to have collections be "pinned" to your home screen while
scheduled.
???+ example "Example"
In this example, the collection will be pinned to your home screen for the month of December and on January 1st
will no longer be pinned (you must run PMM on 1st January for the removal of the pin to happen)
```yaml
collections:
Christmas Movies:
imdb_list: https://www.imdb.com/list/ls000096828/
sync_mode: sync
visible_home: range(12/01-12/31)
```

File diff suppressed because it is too large Load Diff

@ -4,17 +4,20 @@ search:
---
# Sonarr Attributes
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.
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.
???+ note
???+ warning
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.
A `sonarr` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify the `sonarr` mapping individually per library.
A `sonarr` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify
the `sonarr` mapping individually per library.
At the library level, only those settings which are different to the global settings need to be specified; there is an example of this at the end of the page.
At the library level, only those settings which are different to the global settings need to be specified; there is an
example of this at the end of the page.
Below is a `sonarr` mapping example and the full set of attributes:
@ -38,22 +41,22 @@ sonarr:
```
| Attribute | Allowed Values | Default | Required |
|:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------|:------------------------------------------:|
|:-------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------|:------------------------------------------:|
| `url` | Sonarr URL (Including URL Base if set).<br>**Example:** http://192.168.1.12:32788 | N/A | :fontawesome-solid-circle-check:{ .green } |
| `token` | Sonarr API Token. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `add_missing` | Adds all missing shows found from all collections to Sonarr.<br>Use the `sonarr_add_missing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `add_existing` | Adds all existing shows in collections to Sonarr.<br>Use the `sonarr_add_existing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.<br>Use the `sonarr_upgrade_existing` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.<br>Use the `sonarr_ignore_cache` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `root_folder_path` | Default Root Folder Path to use when adding new shows.<br>Use the `sonarr_folder` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `monitor` | Default Monitor to use when adding new shows.<br>Use the `sonarr_monitor` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Values:** <table class="clearTable"><tr><td>`all`</td><td>All episodes except specials</td></tr><tr><td>`future`</td><td>Episodes that have not aired yet</td></tr><tr><td>`missing`</td><td>Episodes that do not have files or have not aired yet</td></tr><tr><td>`existing`</td><td>Episodes that have files or have not aired yet</td></tr><tr><td>`pilot`</td><td>The first episode, all others will be ignored</td></tr><tr><td>`first`</td><td>All episodes of the first season, all others will be ignored</td></tr><tr><td>`latest`</td><td>All episodes of the latest season and future seasons</td></tr><tr><td>`none`</td><td>No episodes</td></tr></table> | `all` | :fontawesome-solid-circle-xmark:{ .red } |
| `quality_profile` | Default Quality Profile to use when adding new shows.<br>Use the `sonarr_quality` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `language_profile` | Default Language Profile to use when adding new shows.<br>Use the `sonarr_language` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Language Profile per collection. | First Profile | :fontawesome-solid-circle-xmark:{ .red } |
| `series_type` | Default Series Type to use when adding new shows.<br>Use the `sonarr_series` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the Series Type per collection.<br>**Values:** <table class="clearTable"><tr><td>`standard`</td><td>Episodes released with SxxEyy pattern</td></tr><tr><td>`daily`</td><td>Episodes released daily that use year-month-day pattern (2017-05-25)</td></tr><tr><td>`anime`</td><td>Episodes released using an absolute episode number</td></tr></table>`standard`: Episodes released with SxxEyy pattern<br>`daily`: Episodes released daily or less frequently that use year-month-day (2017-05-25)<br>`anime`: Episodes released using an absolute episode number | `standard` | :fontawesome-solid-circle-xmark:{ .red } |
| `season_folder` | Use the Season Folder Option when adding new shows.<br>Use the `sonarr_season` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the season folder value per collection. <br>**boolean:** true or false | true | :fontawesome-solid-circle-xmark:{ .red } |
| `tag` | Default list or comma-separated string of tags to use when adding new shows.<br>Use the `sonarr_tag` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
| `search` | Start search for missing episodes when adding new shows.<br>Use the `sonarr_search` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `cutoff_search` | Start search for cutoff unmet episodes when adding new shows.<br>Use the `sonarr_cutoff_search` [Sonarr Details](../builders/details/arr.md#sonarr-definition-settings) in the collection definition to set the cutoff search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `add_missing` | Adds all missing shows found from all collections to Sonarr.<br>Use the `sonarr_add_missing` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to add missing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `add_existing` | Adds all existing shows in collections to Sonarr.<br>Use the `sonarr_add_existing` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to add existing per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `upgrade_existing` | Upgrades all existing shows in collections to match the Quality Profile of the collection.<br>Use the `sonarr_upgrade_existing` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to upgrade the Quality Profile per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `ignore_cache` | Ignores PMM's cache when adding items to Sonarr.<br>Use the `sonarr_ignore_cache` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to ignore per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `root_folder_path` | Default Root Folder Path to use when adding new shows.<br>Use the `sonarr_folder` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Root Folder per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `monitor` | Default Monitor to use when adding new shows.<br>Use the `sonarr_monitor` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Monitor value per collection.<br>**Values:** <table class="clearTable"><tr><td>`all`</td><td>All episodes except specials</td></tr><tr><td>`future`</td><td>Episodes that have not aired yet</td></tr><tr><td>`missing`</td><td>Episodes that do not have files or have not aired yet</td></tr><tr><td>`existing`</td><td>Episodes that have files or have not aired yet</td></tr><tr><td>`pilot`</td><td>The first episode, all others will be ignored</td></tr><tr><td>`first`</td><td>All episodes of the first season, all others will be ignored</td></tr><tr><td>`latest`</td><td>All episodes of the latest season and future seasons</td></tr><tr><td>`none`</td><td>No episodes</td></tr></table> | `all` | :fontawesome-solid-circle-xmark:{ .red } |
| `quality_profile` | Default Quality Profile to use when adding new shows.<br>Use the `sonarr_quality` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Quality Profile per collection. | N/A | :fontawesome-solid-circle-check:{ .green } |
| `language_profile` | Default Language Profile to use when adding new shows.<br>Use the `sonarr_language` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Language Profile per collection. | First Profile | :fontawesome-solid-circle-xmark:{ .red } |
| `series_type` | Default Series Type to use when adding new shows.<br>Use the `sonarr_series` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the Series Type per collection.<br>**Values:** <table class="clearTable"><tr><td>`standard`</td><td>Episodes released with SxxEyy pattern</td></tr><tr><td>`daily`</td><td>Episodes released daily that use year-month-day pattern (2017-05-25)</td></tr><tr><td>`anime`</td><td>Episodes released using an absolute episode number</td></tr></table>`standard`: Episodes released with SxxEyy pattern<br>`daily`: Episodes released daily or less frequently that use year-month-day (2017-05-25)<br>`anime`: Episodes released using an absolute episode number | `standard` | :fontawesome-solid-circle-xmark:{ .red } |
| `season_folder` | Use the Season Folder Option when adding new shows.<br>Use the `sonarr_season` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the season folder value per collection. <br>**boolean:** true or false | true | :fontawesome-solid-circle-xmark:{ .red } |
| `tag` | Default list or comma-separated string of tags to use when adding new shows.<br>Use the `sonarr_tag` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the tags per collection. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
| `search` | Start search for missing episodes when adding new shows.<br>Use the `sonarr_search` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `cutoff_search` | Start search for cutoff unmet episodes when adding new shows.<br>Use the `sonarr_cutoff_search` [Sonarr Settings](../files/arr.md#sonarr-definition-settings) in the collection definition to set the cutoff search value per collection.<br>**boolean:** true or false | false | :fontawesome-solid-circle-xmark:{ .red } |
| `plex_path` | When using `add_existing` or `sonarr_add_all` Convert this part of the path to `sonarr_path`. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
| `sonarr_path` | When using `add_existing` or `sonarr_add_all` Convert the `plex_path` part of the path to this. | ` ` | :fontawesome-solid-circle-xmark:{ .red } |
@ -61,13 +64,16 @@ sonarr:
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.
* You can set most attributes per collection by using the [Sonarr Settings](../files/arr.md#sonarr-definition-settings)
in the collection definition.
![Sonarr Details](sonarr.png)
![Sonarr Details](images/sonarr.png)
Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are of course required they are not shown here to focus on the settings that are shown above]:
Based on that UI, the settings would be [settings not based on things in this image are shown as `#`; url and token are
of course required they are not shown here to focus on the settings that are shown above]:
```YAML
sonarr:
@ -92,7 +98,9 @@ sonarr:
Specifying a second Sonarr instance for a specific library:
In this example we have two Sonarr instances, standard and 4K, with five libraries that override various details. Also, shows are being added to the "Library05" library outside Sonarr via a custom script and I want those new shows added to Sonarr for tracking.
In this example we have two Sonarr instances, standard and 4K, with five libraries that override various details. Also,
shows are being added to the "Library05" library outside Sonarr via a custom script and I want those new shows added to
Sonarr for tracking.
```
libraries:

@ -1,8 +1,10 @@
# Tautulli Attributes
Configuring [Tautulli](https://tautulli.com/) is optional but can allow you to create Collections based on Tautulli's Watch Statistics.
Configuring [Tautulli](https://tautulli.com/) is optional but can allow you to create Collections based on Tautulli's
Watch Statistics.
A `tautulli` mapping can be either in the root of the config file as global mapping for all libraries, or you can specify the `tautulli` mapping individually per library.
A `tautulli` mapping can be either in the root of the config file as global mapping for all libraries, or you can
specify the `tautulli` mapping individually per library.
Below is a `tautulli` mapping example and the full set of attributes:

@ -18,10 +18,11 @@ tmdb:
```
| Attribute | Allowed Values | Default | Required |
|:-------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:------------------------------------------:|
|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:------------------------------------------:|
| `apikey` | User TMDb V3 API Key | N/A | :fontawesome-solid-circle-check:{ .green } |
| `language` | [ISO 639-1 Code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) of the User Language | en | :fontawesome-solid-circle-xmark:{ .red } |
| `region` | [ISO 3166-1 Code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) of the User Region for use with [Other TMDb Builders](../builders/tmdb.md#other-tmdb-builders) | None | :fontawesome-solid-circle-xmark:{ .red } |
| `region` | [ISO 3166-1 Code](https://en.wikipedia.org/wiki/ISO_3166-1#Current_codes) of the User Region for use with [Other TMDb Builders](../files/builders/tmdb.md#other-tmdb-builders) | None | :fontawesome-solid-circle-xmark:{ .red } |
| `cache_expiration` | Number of days before each cache mapping expires and has to be re-cached. | 60 | :fontawesome-solid-circle-xmark:{ .red } |
If you do not have a TMDb V3 API key please refer to this [guide](https://developers.themoviedb.org/3/getting-started/introduction).
If you do not have a TMDb V3 API key please refer to this
[guide](https://developers.themoviedb.org/3/getting-started/introduction).

@ -31,7 +31,8 @@ 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:
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.
@ -40,7 +41,7 @@ To connect to Trakt.tv you must create a Trakt application and supply Plex Meta
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)
![Trakt Authorize](images/trakt.png)
7. Record the `PIN` as `pin` in your Configuration File.
@ -50,7 +51,10 @@ To connect to Trakt.tv you must create a Trakt application and supply Plex Meta
## Online Authorization Script
Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration file.
Plex Meta Manager requires interactive mode to be able to enter the Client ID and Client Secret. Some systems (namely
NAS) make this difficult to accomplish. Chazlarson has developed an online script that can be run to generate the MAL
and Trakt authentication outside of Plex Meta Manager and then paste the end-result directly into the configuration
file.
The Online Auth tool can be found [here](https://replit.com/@chazlarson/TraktAuth).

@ -31,7 +31,8 @@ webhooks:
## Error Notifications
The Error notification will be sent whenever an error occurs. The payload that is sent is different Depending on which level the error occurs.
The Error notification will be sent whenever an error occurs. The payload that is sent is different Depending on which
level the error occurs.
### Global JSON Payload
@ -152,7 +153,8 @@ The Delete Notification will be sent whenever a collection/playlist is deleted c
## Changes Notifications
The Changes Notification will be sent after each collection/playlist containing the following payload if the collection/playlist has been created, has new items, or has had items removed.
The Changes Notification will be sent after each collection/playlist containing the following payload if the
collection/playlist has been created, has new items, or has had items removed.
### JSON Payload

@ -1,6 +1,7 @@
# British Academy of Film and Television Arts Awards Collections
The `bafta` Default Collection File is used to create collections based on the British Academy of Film and Television Arts Awards.
The `bafta` Default Collection File is used to create collections based on the British Academy of Film and Television
Arts Awards.
![](../images/bafta.png)
@ -28,9 +29,21 @@ libraries:
- pmm: bafta
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to
make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults
work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@ -38,30 +51,27 @@ Template Variables can be used to manipulate the file in various ways to slightl
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `BAFTA <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<key_name>> BAFTA Awards.`<br>**Values:** Any string with `<<key_name>>` in it. |
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
1. Each default collection has a `key` that when calling to effect a specific collection you must replace
`<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
### Example Template Variable Amendments
???+ example "Example Template Variable Amendments"
The below is an example config.yml extract with some Template Variables added in to change how the file works.
???+ tip
Anywhere you see this icon:
> :fontawesome-solid-circle-plus:
That's a tooltip, you can press them to get more information.
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
libraries:

@ -28,18 +28,28 @@ libraries:
- pmm: cannes
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Cannes <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -47,6 +57,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}

@ -30,18 +30,28 @@ libraries:
- pmm: choice
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Critics Choice <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -49,6 +59,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -65,6 +77,7 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:

@ -28,18 +28,29 @@ libraries:
- pmm: emmy
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn off the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Emmys <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -47,6 +58,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}

@ -32,18 +32,29 @@ libraries:
- pmm: golden
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Golden Globe <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -51,6 +62,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}

@ -27,18 +27,29 @@ libraries:
- pmm: oscars
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-6<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year-1<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Oscars Winners <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -46,6 +57,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -62,6 +75,7 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:
@ -81,7 +95,7 @@ libraries:
1. Shows the collection and all of its items within the Library tab in Plex
2. Sorts the collection items alphabetically
3. Adds items from the source list which are not in Plex to Radarr
4. Change the name of the collections to "Oscars yearhere Winners"
4. Change the name of the collections to "Oscars YEAR_HERE Winners"
5. If today is 2024, then create collections for Oscars 2014 onwards
6. If starting year is 2014, then create collections for 2014, 2016, 2018, 2020, etc.
7. If today is 2024, then the final collection is Oscars 2024

@ -30,19 +30,32 @@ libraries:
- pmm: other_award
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -59,6 +72,7 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:

@ -27,18 +27,29 @@ libraries:
- pmm: spirit
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Independent Spirit Awards <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -46,6 +57,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}

@ -28,18 +28,28 @@ libraries:
- pmm: sundance
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `use_year_collections` | **Description:** Turn the individual year collections off.<br>**Values:** `false` to turn of the collections |
| `year_collection_section` | **Description:** Change the collection section for year collections only. (Use quotes to not lose leading zeros `"05"`)<br>**Values:** Any number |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
| `name_format` | **Description:** Changes the title format of the Dynamic Collections.<br>**Default:** `Sundance Film Festival <<key_name>>`<br>**Values:** Any string with `<<key_name>>` in it. |
@ -47,6 +57,8 @@ Template Variables can be used to manipulate the file in various ways to slightl
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -63,6 +75,7 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:

@ -31,10 +31,21 @@ libraries:
- pmm: actor
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
@ -42,8 +53,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
| `style` | **Description:** Controls the visual theme of the collections created.<br>**Default:** `bw`<br>**Values:** `bw`, `rainier`, `signature`, `diiivoy`, or `diiivoycolor` |
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `data` | **Description:** Replaces the `data` dynamic collection value.<table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>depth</code></td><td>Controls the depth within the casting credits to search for common actors<br><strong>Default:</strong> 5<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>limit</code></td><td>Controls the maximum number of collections to create<br><strong>Default:</strong> 25<br><strong>Values:</strong> Number greater than 0</td></tr></table> |
| `include` | **Description:** Force these Actors to be included to create a Dynamic Collection.<br>**Values:** List of Actor Names |
| `exclude` | **Description:** Exclude these Actors from creating a Dynamic Collection.<br>**Values:** List of Actor Names |
@ -54,6 +65,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}

@ -36,18 +36,28 @@ libraries:
- pmm: aspect
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:--------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys |
@ -55,6 +65,7 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
| `summary_format` | **Description:** Changes the summary format of the Dynamic Collections.<br>**Default:** `<<library_translationU>>s based on or inspired by <<translated_key_name>>s.`<br>**Values:** Any string. |
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"

@ -30,18 +30,28 @@ libraries:
- pmm: audio_language
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) |
| `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) |
| `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) |
@ -51,6 +61,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -86,9 +98,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? warning
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `include`
**Default `include`:
```yaml
include:

@ -32,18 +32,28 @@ libraries:
- pmm: based
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:--------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `exclude` | **Description:** Exclude these Media Outlets from creating a Dynamic Collection.<br>**Values:** List of Media Outlet Keys |

@ -1,6 +1,6 @@
# Collectionless Collection
The `collectionless` Default Collection File is used to create a [Collectionless collection](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.
The `collectionless` Default Collection File is used to create a [Collectionless collection](../../files/builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.
![](../images/collectionless.png)
@ -14,7 +14,7 @@ Requirements: For this file to work it needs to run last under `collection_files
| Collection | Description |
|:-----------------|:------------------------------------------------------------------------------------------------------------------------------------------|
| `Collectionless` | [Collectionless collection](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.. |
| `Collectionless` | [Collectionless collection](../../files/builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.. |
## Config
@ -47,7 +47,7 @@ Note that the `template_variables:` section only needs to be used if you do want
| `name_collectionless` | **Description:** Changes the name of the collection.<br>**Values:** New Collection Name |
| `summary_collectionless` | **Description:** Changes the summary of the collection.<br>**Values:** New Collection Summary |
| `sort_title` | **Description:** Sets the sort title for the collection.<br>**Default:** `~_Collectionless`<br>**Values:** Any String |
| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Default:** `alpha`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in this file.<br>**Default:** `alpha`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `url_poster` | **Description:** Changes the poster url of thecollection.<br>**Values:** URL directly to the Image |
| `exclude` | **Description:** Exclude these Collections from being considered for collectionless.<br>**Values:** List of Collections |
| `exclude_prefix` | **Description:** Overrides the [default exclude_prefix list](#default-exclude_prefix). Exclude Collections with one of these prefixes from being considered for collectionless.<br>**Default:** [default exclude_prefix list](#default-exclude_prefix)<br>**Values:** List of Prefixes | |
@ -71,7 +71,11 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
???+ tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `exclude_prefix`

@ -34,18 +34,28 @@ libraries:
- pmm: content_rating_cs
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library |
| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library |
| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library |
@ -58,6 +68,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -96,9 +108,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? warning
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `include`
**Default `include`**:
```yaml
include:
@ -122,7 +138,7 @@ include:
- 18
```
### Default `addons`
**Default `addons`**:
```yaml
addons:

@ -10,14 +10,14 @@ If you do not use the German-based rating system within Plex, this file will att
Supported Library Types: Movie, Show
Recommendation: Set the Certification Country within your library's advanced settings to "United Kingdom"
Recommendation: Set the Certification Country within your library's advanced settings to "Germany"
## Collections Section 110
| Collection | Key | Description |
|:------------------------------------------------------------------|:--------------------------------------------|:----------------------------------------------------------------------------------------|
| `Ratings Collections` | `separator` | [Separator Collection](../separators.md) to denote the Section of Collections. |
| `<<Content Rating>> Movies/Shows`<br>**Example:** `BJPM Movies` | `<<Content Rating>>`<br>**Example:** `BJPM` | Collection of Movies/Shows that have this Content Rating. |
| `<<Content Rating>> Movies/Shows`<br>**Example:** `BPjM Movies` | `<<Content Rating>>`<br>**Example:** `BPjM` | Collection of Movies/Shows that have this Content Rating. |
| `Not Rated Movies/Shows` | `other` | Collection of Movies/Shows that are Unrated, Not Rated or any other uncommon Ratings. |
## Config
@ -83,15 +83,15 @@ libraries:
sep_style: stb #(1)!
use_other: false #(2)!
append_addons:
BJPM: #(3)!
BPjM: #(3)!
- X #(4)!
sort_by: title.asc
```
1. Use the stb [Separator Style](../separators.md#separator-styles)
2. Do not create a "Not Rated Movies/Shows" collection
3. Defines a collection which will be called "BJPM", this does not need to already exist in your library
4. Adds the "X" content rating to the "BJPM" addon list, "X" must exist in your library if the "BJPM" content rating does not
3. Defines a collection which will be called "BPjM", this does not need to already exist in your library
4. Adds the "X" content rating to the "BPjM" addon list, "X" must exist in your library if the "BPjM" content rating does not
## Default values
@ -110,7 +110,7 @@ include:
- 12
- 16
- 18
- BJPM
- BPjM
```
### Default `addons`
@ -200,7 +200,7 @@ include:
- NC-17
- R+ - Mild Nudity
- Rx - Hentai
BJPM:
BPjM:
- de/BPjM Restricted
- BPjM Restricted
```

@ -34,18 +34,28 @@ libraries:
- pmm: content_rating_mal
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library |
| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library |
| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library |
@ -58,6 +68,12 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
### Example Template Variable Amendments
The below is an example config.yml extract with some Template Variables added in to change how the file works.
@ -91,9 +107,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `include`
**Default `include`**:
```yaml
include:
@ -105,7 +125,7 @@ include:
- "Rx"
```
### Default `addons`
**Default `addons`**:
```yaml
addons:

@ -34,18 +34,28 @@ libraries:
- pmm: content_rating_uk
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Content Ratings found in your library |
| `exclude` | **Description:** Exclude these Content Ratings from creating a Dynamic Collection.<br>**Values:** List of Content Ratings found in your library |
| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Content Ratings found in your library |
@ -58,6 +68,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -95,9 +107,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `include`
**Default `include`**:
```yaml
include:
@ -110,7 +126,7 @@ include:
- R18
```
### Default `addons`
**Default `addons`**:
```yaml
addons:

@ -31,18 +31,28 @@ libraries:
- pmm: genre
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `exclude` | **Description:** Exclude these Genres from creating a Dynamic Collection.<br>**Values:** List of Genres found in your library |
| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Genres found in your library |
| `append_addons` | **Description:** Appends to the [default addons dictionary](#default-addons).<br>**Values:** Dictionary List of Genres found in your library |
@ -52,6 +62,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -91,9 +103,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
???+ tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `addons`
**Default `addons`**:
```yaml
addons:

@ -37,10 +37,20 @@ libraries:
- pmm: resolution
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
@ -48,8 +58,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
| `style` | **Description:** Controls the visual theme of the collections created.<table class="clearTable"><tr><th>Values:</th></tr><tr><td><code>default</code></td><td>Default Theme</td></tr><tr><td><code>standards</code></td><td>Standards Theme</td></tr></table> |
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** Any Resolutions found in your library |
| `exclude` | **Description:** Exclude these Resolutions from creating a Dynamic Collection.<br>**Values:** List of Resolutions found in your library |
| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Resolutions found in your library |
@ -62,6 +72,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -95,9 +107,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `include`
**Default `include`**:
```yaml
include:
@ -107,7 +123,7 @@ include:
- 480
```
### Default `addons`
**Default `addons`**:
```yaml
addons:

@ -45,18 +45,28 @@ libraries:
- pmm: streaming
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:--------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `exclude` | **Description:** Exclude these Streaming Services from creating a Dynamic Collection.<br>**Values:** List of Streaming Service Keys |
@ -67,6 +77,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}

@ -31,18 +31,28 @@ libraries:
- pmm: studio
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include).<br>**Values:** List of Studios found in your library |
| `exclude` | **Description:** Exclude these Studios from creating a Dynamic Collection.<br>**Values:** List of Studios found in your library |
| `addons` | **Description:** Overrides the [default addons dictionary](#default-addons). Defines how multiple keys can be combined under a parent key. The parent key doesn't have to already exist in Plex<br>**Values:** Dictionary List of Studios found in your library |
@ -55,6 +65,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -90,9 +102,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `include`
**Default `include`**:
```yaml
include:
@ -570,7 +586,7 @@ include:
- Working Title Films
```
### Default `addons`
**Default `addons`**:
```yaml
addons:

@ -30,18 +30,28 @@ libraries:
- pmm: subtitle_language
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `include` | **Description:** Overrides the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) |
| `exclude` | **Description:** Exclude these Audio Languages from creating a Dynamic Collection.<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) |
| `append_include` | **Description:** Appends to the [default include list](#default-include)<br>**Values:** List of [ISO 639-1 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)<br>**Values:** List of [ISO 639-2 codes](https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes) |
@ -51,6 +61,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -67,6 +79,7 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:
@ -84,7 +97,15 @@ libraries:
2. Do not create an "Audio Language Collections" separator
3. Exclude "French" from having an Audio Collection
## Default `include`
## Default values
??? tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
**Default `include`**:
```yaml
include:

@ -43,18 +43,28 @@ libraries:
- pmm: universe
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `minimum_items` | **Description:** Controls the minimum items that the collection must have to be created.<br>**Default:** `2`<br>**Values:** Any number |
| `name_mapping_<<key>>`<sup>1</sup> | **Description:** Sets the name mapping value for using assets of the specified key's collection. <br>**Values:** Any String |
| `imdb_list_<<key>>`<sup>1</sup> | **Description:** Adds the Movies in the IMDb List to the specified key's collection.<br>**Values:** List of IMDb List URLs | | |
@ -66,6 +76,8 @@ This file contains a [Separator](../separators.md) so all [Shared Separator Vari
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -82,6 +94,7 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:
@ -104,9 +117,13 @@ libraries:
## Default values
These are lists provided for reference to show what values will be in use if you do no customization. If you want to customize these values, use the methods described above. These do not show how to change a name or a list.
??? tip
These are lists provided for reference to show what values will be in use if you do no customization. **These do not show how to change a name or a list.**
If you want to customize these values, use the methods described above.
### Default `data`
**Default `data`**:
```yaml
data:
@ -127,7 +144,7 @@ data:
xmen: X-Men Universe
```
### Default `mdblist_list`
**Default `mdblist_list`**:
```yaml
trakt_list:

@ -29,23 +29,35 @@ libraries:
- pmm: year
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
This file contains a [Separator](../separators.md) so all [Shared Separator Variables](../separators.md#shared-separator-variables) are available as well.
| Variable | Description & Values |
|:------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the Builder Limit for all collections in a Defaults file.<br>**Default:** `10`<br>**Values:** Number Greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the Builder Limit of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number Greater than 0 |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../builders/smart.md#sort-options) |
| `sort_by` | **Description:** Changes the Smart Filter Sort for all collections in a Defaults file.<br>**Default:** `release.desc`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `sort_by_<<key>>`<sup>1</sup> | **Description:** Changes the Smart Filter Sort of the specified key's collection.<br>**Default:** `sort_by`<br>**Values:** [Any `smart_filter` Sort Option](../../files/builders/smart.md#sort-options) |
| `data` | **Description:** Replaces the `data` dynamic collection value.<br><table class="clearTable"><tr><th>Attribute</th><th>Description & Values</th></tr><tr><td><code>starting</code></td><td>Controls the starting year for collections<br><strong>Default:</strong> current_year-10<br><strong>Values:</strong> Number greater than 0</td></tr><tr><td><code>ending</code></td><td>Controls the ending year for collections<br><strong>Default:</strong> current_year<br><strong>Values:</strong> Number greater than 1</td></tr><tr><td><code>increment</code></td><td>Controls the increment (i.e. every 5th year)<br><strong>Default:</strong> 1<br><strong>Values:</strong> Number greater than 0</td><td></td></tr></table><ul><li><strong><code>starting</code> and <code>ending</code> can also have the value <code>current_year</code></strong></li><li><strong>You can also use a value relative to the <code>current_year</code> by doing <code>current_year-5</code></strong></li></ul> |
| `exclude` | **Description:** Exclude these Years from creating a Dynamic Collection.<br>**Values:** List of Years |
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
@ -62,6 +74,23 @@ The below is an example config.yml extract with some Template Variables added in
That's a tooltip, you can press them to get more information.
{%
include-markdown "../collection_variables.md"
%}
### Example Template Variable Amendments
The below is an example config.yml extract with some Template Variables added in to change how the file works.
???+ tip
Anywhere you see this icon:
> :fontawesome-solid-circle-plus:
That's a tooltip, you can press them to get more information.
```yaml
libraries:
Movies:

@ -31,24 +31,37 @@ libraries:
- pmm: anilist
```
## Template Variable Default Values
## Template Variables
Template Variables can be used to manipulate the file in various ways to slightly change how it works without having to make your own local copy.
Note that the `template_variables:` section only needs to be used if you do want to actually change how the defaults work. Any value not specified will use its default value if it has one if not it's just ignored.
??? info "Click to expand"
=== "File-Specific Template Variables"
The below template variables are available specifically for this PMM Defaults file.
Be sure to also check out the "Shared Template Variables" tab for additional variables.
| Variable | Description & Values |
|:---------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `limit` | **Description:** Changes the number of items in a collection for all collections in a Defaults file.<br>**Default:** `100`<br>**Values:** Number greater than 0 |
| `limit_<<key>>`<sup>1</sup> | **Description:** Changes the number of items in a collection of the specified key's collection.<br>**Default:** `limit`<br>**Values:** Number greater than 0 |
| `sync_mode` | **Description:** Changes the Sync Mode for all collections in a Defaults file.<br>**Default:** `sync`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `sync_mode_<<key>>`<sup>1</sup> | **Description:** Changes the Sync Mode of the specified key's collection.<br>**Default:** `sync_mode`<br>**Values:**<table class="clearTable"><tr><td>`sync`</td><td>Add and Remove Items based on Builders</td></tr><tr><td>`append`</td><td>Only Add Items based on Builders</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order` | **Description:** Changes the Collection Order for all collections in a Defaults file.<br>**Default:** `custom`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
| `collection_order_<<key>>`<sup>1</sup> | **Description:** Changes the Collection Order of the specified key's collection.<br>**Default:** `collection_order`<br>**Values:**<table class="clearTable"><tr><td>`release`</td><td>Order Collection by Release Dates</td></tr><tr><td>`alpha`</td><td>Order Collection Alphabetically</td></tr><tr><td>`custom`</td><td>Order Collection Via the Builder Order</td></tr><tr><td>[Any `plex_search` Sort Option](../../files/builders/plex.md#sort-options)</td><td>Order Collection by any `plex_search` Sort Option</td></tr></table> |
1. Each default collection has a `key` that when calling to effect a specific collection you must replace `<<key>>` with when calling.
=== "Shared Template Variables"
{%
include-markdown "../collection_variables.md"
%}
### Example Template Variable Amendments
The below is an example config.yml extract with some Template Variables added in to change how the file works.

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save