[48] split metadata and collection files with their own attributes

pull/1771/head
meisnate12 12 months ago
parent 6cfd46fd67
commit 5a5efd2112

@ -1 +1 @@
1.19.1-develop47 1.19.1-develop48

@ -2,7 +2,7 @@
libraries: # This is called out once within the config.yml file libraries: # This is called out once within the config.yml file
Movies: # These are names of libraries in your Plex Movies: # These are names of libraries in your Plex
metadata_path: collection_files:
- pmm: basic # This is a file within PMM's defaults folder - pmm: basic # This is a file within PMM's defaults folder
- pmm: imdb # 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 # see the wiki for how to use local files, folders, URLs, or files from git
@ -11,7 +11,7 @@ libraries: # This is called out once within the config.yml
- pmm: ribbon # This is a file within PMM's defaults folder - 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 # see the wiki for how to use local files, folders, URLs, or files from git
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: basic # This is a file within PMM's defaults folder - pmm: basic # This is a file within PMM's defaults folder
- pmm: imdb # 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 # see the wiki for how to use local files, folders, URLs, or files from git
@ -20,12 +20,12 @@ libraries: # This is called out once within the config.yml
- pmm: ribbon # This is a file within PMM's defaults folder - 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 # see the wiki for how to use local files, folders, URLs, or files from git
Anime: Anime:
metadata_path: collection_files:
- pmm: basic # This is a file within PMM's defaults folder - pmm: basic # This is a file within PMM's defaults folder
- pmm: anilist # 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 # see the wiki for how to use local files, folders, URLs, or files from git
Music: Music:
metadata_path: collection_files:
- file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE - file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE
playlist_files: playlist_files:
- pmm: playlist # This is a file within PMM's defaults folder - pmm: playlist # This is a file within PMM's defaults folder

@ -29,14 +29,14 @@ The scheduling options are:
## Examples ## 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 Metadata files and Operations) for the same day. 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 ```yaml
libraries: libraries:
Movies: Movies:
schedule: weekly(sunday) schedule: weekly(sunday)
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
- pmm: imdb - pmm: imdb
- pmm: studio - pmm: studio
@ -46,14 +46,14 @@ libraries:
mass_critic_rating_update: tmdb mass_critic_rating_update: tmdb
``` ```
Metadata 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: 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.** **Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.**
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
schedule: weekly(monday) schedule: weekly(monday)
- pmm: imdb - pmm: imdb
@ -64,7 +64,7 @@ libraries:
schedule: weekly(thursday) schedule: weekly(thursday)
- pmm: actor - pmm: actor
schedule: weekly(friday) schedule: weekly(friday)
overlay_path: overlay_files:
- schedule: weekly(saturday) - schedule: weekly(saturday)
- pmm: audio_codec - pmm: audio_codec
- pmm: resolution - pmm: resolution
@ -104,7 +104,7 @@ Whilst it isn't possible to schedule individual Operations, you can create addit
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
Movies Operations (Monday): # Name doesn't matter Movies Operations (Monday): # Name doesn't matter
library_name: Movies # Must match your library name in Plex library_name: Movies # Must match your library name in Plex

@ -0,0 +1,105 @@
# 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. | &#9989; |
| [`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. | &#10060; |
| [`addons`](#addons) | Defines how multiple keys can be combined under a parent key. | &#10060; |
| [`template`](#template) | Name of the template to use for these dynamic collections. | &#10060; |
| [`template_variables`](#template-variables) | Defines how template variables can be defined by key. | &#10060; |
| [`other_template`](#other-template) | Name of the template to use for the other collection. | &#10060; |
| [`remove_suffix`](#remove-prefixsuffix) | Removes the defined suffixes from the key before it's used in the collection title. | &#10060; |
| [`remove_prefix`](#remove-prefixsuffix) | Removes the defined prefixes from the key before it's used in the collection title. | &#10060; |
| [`title_format`](#title-format) | This is the format for the collection titles. | &#10060; |
| [`key_name_override`](#key-name-override) | Defines how key names can be overridden before they are formatted into collection titles. | &#10060; |
| [`title_override`](#title-override) | Defines how collection titles can be overridden ignoring title formatting. | &#10060; |
| [`custom_keys`](#custom-keys) | Defines if custom keys are allowed. | &#10060; |
| [`test`](#test) | Will add `test: true` to all collections for test runs. | &#10060; |
| [`sync`](#sync) | Will remove dynamic collections that are no longer in the creation list. | &#10060; |
| [`include`](#include) | Define a list of keys to be made into collections. | &#10060; |
| [`other_name`](#other-name) | Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. | &#10060; |
{%
include-markdown "./dynamic_types.md"
%}

File diff suppressed because it is too large Load Diff

@ -4,7 +4,7 @@ Filters allow for you to filter every item added to the collection/overlay/playl
## Using Filters ## Using Filters
Filters cannot do anything alone they require the use of at least one [Builder](../metadata/builders.md) to function. Filters cannot do anything alone they require the use of at least one [Builder](overview.md) to function.
You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match. You can have multiple filters in each set but an item must match at least one value from **each** filter to not be ignored. The values for each must match what Plex has including special characters in order to match.
@ -34,7 +34,7 @@ You can use the `plex_all: true` builder to filter from your entire library.
???+ warning ???+ warning
Filters can be very slow, particularly on larger libraries. Try to build or narrow your items using a [Smart Label Collection](smart.md#smart-label), [Plex Search](plex.md#plex-search) or another [Builder](../metadata/builders.md) if possible. Filters can be very slow, particularly on larger libraries. Try to build or narrow your items using a [Smart Label Collection](smart.md#smart-label), [Plex Search](plex.md#plex-search) or another [Builder](overview.md) if possible.
## String Filters ## String Filters

@ -0,0 +1,24 @@
# 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. | &#9989; |
| [Smart](smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | &#9989; |
| [TMDb](tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | &#9989; |
| [TVDb](tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | &#10060; |
| [IMDb](imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | &#10060; |
| [Trakt](trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | &#9989; |
| [Tautulli](tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | &#9989; |
| [Radarr](radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | &#9989; |
| [Sonarr](sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | &#9989; |
| [MdbList](mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | &#10060; |
| [Letterboxd](letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | &#10060; |
| [ICheckMovies](icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | &#10060; |
| [FlixPatrol](flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | &#10060; |
| [Reciperr](reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | &#10060; |
| [StevenLu](stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | &#10060; |
| [AniDB](anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | &#10060; |
| [AniList](anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | &#10060; |
| [MyAnimeList](myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | &#9989; |

@ -2,7 +2,7 @@
The below builders are available based on metadata inside your Plex Server. The below builders are available based on metadata inside your Plex Server.
| Name | Description | Requires Config | | Name | Description | Requires Config |
|:--------------------------------------------|:----------------------------------------------------------------------------------------------|:---------------:| |:-------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------:|
| [Plex](../builders/plex.md) | Grabs items based on the metadata inside your Plex Server. | &#9989; | | [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. | &#9989; |
| [Smart](../builders/smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | &#9989; | | [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) | &#9989; |

@ -4,19 +4,19 @@ The below builders are available based on third-party services, multiple builder
| Name | Description | Requires Config | | Name | Description | Requires Config |
|:---------------------------------------------|:----------------------------------------------------------------------------------------------|:---------------:| |:---------------------------------------------|:----------------------------------------------------------------------------------------------|:---------------:|
| [TMDb](../builders/tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | &#9989; | | [TMDb](../tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | &#9989; |
| [TVDb](../builders/tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | &#10060; | | [TVDb](../tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | &#10060; |
| [IMDb](../builders/imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | &#10060; | | [IMDb](../imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | &#10060; |
| [Trakt](../builders/trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | &#9989; | | [Trakt](../trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | &#9989; |
| [Tautulli](../builders/tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | &#9989; | | [Tautulli](../tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | &#9989; |
| [Radarr](../builders/radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | &#9989; | | [Radarr](../radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | &#9989; |
| [Sonarr](../builders/sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | &#9989; | | [Sonarr](../sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | &#9989; |
| [MdbList](../builders/mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | &#10060; | | [MdbList](../mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | &#10060; |
| [Letterboxd](../builders/letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | &#10060; | | [Letterboxd](../letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | &#10060; |
| [ICheckMovies](../builders/icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | &#10060; | | [ICheckMovies](../icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | &#10060; |
| [FlixPatrol](../builders/flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | &#10060; | | [FlixPatrol](../flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | &#10060; |
| [Reciperr](../builders/reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | &#10060; | | [Reciperr](../reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | &#10060; |
| [StevenLu](../builders/stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | &#10060; | | [StevenLu](../stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | &#10060; |
| [AniDB](../builders/anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | &#10060; | | [AniDB](../anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | &#10060; |
| [AniList](../builders/anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | &#10060; | | [AniList](../anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | &#10060; |
| [MyAnimeList](../builders/myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | &#9989; | | [MyAnimeList](../myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | &#9989; |

@ -1,9 +1,11 @@
# Plex Builders # Dumb Builders
This builder finds its items by using the features of Plex. This builder finds its items by using the features of Plex.
No configuration is required for these builders. No configuration is required for these builders.
The results of these builders are static and require PMM to re-run in order to update.
| Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort | | Attribute | Description | Works with Movies | Works with Shows | Works with Playlists and Custom Sort |
|:----------------------------------------------|:----------------------------------------------------------------------------|:-----------------:|:----------------:|:------------------------------------:| |:----------------------------------------------|:----------------------------------------------------------------------------|:-----------------:|:----------------:|:------------------------------------:|
| [`plex_all`](#plex-all) | Gets every movie/show in your library. Useful with [Filters](filters.md) | &#9989; | &#9989; | &#10060; | | [`plex_all`](#plex-all) | Gets every movie/show in your library. Useful with [Filters](filters.md) | &#9989; | &#9989; | &#10060; |

@ -2,6 +2,8 @@
Smart Builders allow Plex Meta Manager to create Smart Collections in two different ways. Smart Builders allow Plex Meta Manager to create Smart Collections in two different ways.
The results of these builders are dynamic and do not require PMM to re-run in order to update, instead they will update automatically as the data within your Plex Library updates (i.e. if new media is added)
???+ note ???+ note
Smart Builders do not currently work with Playlists Smart Builders do not currently work with Playlists

@ -1,6 +1,6 @@
# Templates # Templates
Collection, Playlist, Metadata, and Overlay Definitions often share a lot of common or generalizable configuration details. Templates allow you to define these details so they can be used across multiple definitions. Collection, Playlist, Metadata, and Overlay Files often share a lot of common or generalizable configuration details. Templates allow you to define these details so they can be used across multiple definitions.
For example, an actor collection might look like this: For example, an actor collection might look like this:
@ -90,7 +90,7 @@ The names of template variables that you define are arbitrary. In the example ab
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. 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 metadata file. Here's the full example Actor template and two different ways to use it, as it would appear in a collection file.
```yaml ```yaml
templates: templates:

@ -2,30 +2,30 @@
libraries: # This is called out once within the config.yml file libraries: # This is called out once within the config.yml file
Movies: # These are names of libraries in your Plex Movies: # These are names of libraries in your Plex
metadata_path: collection_files:
- pmm: basic # This is a file within PMM's defaults folder - pmm: basic # This is a file within PMM's defaults folder
- pmm: imdb # 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 # see the wiki for how to use local files, folders, URLs, or files from git
overlay_path: overlay_files:
- remove_overlays: false # Set this to true to remove all overlays - remove_overlays: false # Set this to true to remove all overlays
- pmm: ribbon # This is a file within PMM's defaults folder - 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 # see the wiki for how to use local files, folders, URLs, or files from git
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: basic # This is a file within PMM's defaults folder - pmm: basic # This is a file within PMM's defaults folder
- pmm: imdb # 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 # see the wiki for how to use local files, folders, URLs, or files from git
overlay_path: overlay_files:
- remove_overlays: false # Set this to true to remove all overlays - remove_overlays: false # Set this to true to remove all overlays
- pmm: ribbon # This is a file within PMM's defaults folder - 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 # see the wiki for how to use local files, folders, URLs, or files from git
Anime: Anime:
metadata_path: collection_files:
- pmm: basic # This is a file within PMM's defaults folder - pmm: basic # This is a file within PMM's defaults folder
- pmm: anilist # 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 # see the wiki for how to use local files, folders, URLs, or files from git
Music: Music:
metadata_path: collection_files:
- file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE - file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE
playlist_files: playlist_files:
- pmm: playlist # This is a file within PMM's defaults folder - pmm: playlist # This is a file within PMM's defaults folder

@ -0,0 +1,183 @@
# Collection Files
Collection Files holds information on how Plex Meta Manager should create collections. There are a large number of builders available to build collections,
## Overview
This is a basic Collections File which contains the structure to build a collection called "Top 50 Grossing Films of All Time (Worldwide)"
The collection order is set to be the same as is received from the source list, and items added/removed from the source list will be added/removed from the collection in the Plex library.
???+ example "Example "MyCollections.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.
For the purpose of this example, we are going to save the File as `MyCollections.yml` within the location mapped as `config` in our setup.
I then call "MyCollections.yml" in my [Configuration File](../configuration.md) within the `collection_files` section
???+ example "config.yml Example Collection File Addition"
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
libraries:
Movies: #(1)!
collection_files:
- file: config/MyCollections.yml #(2)!
```
1. This must match the name of a library in your Plex server
2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides.
Whenever I execute Plex Meta Manager and the Movies library is run, MyCollections.yml will run and my "Top 50 Grossing Films of All Time (Worldwide)" will be created/updated.
## File Attributes
Collection Files can utilize the following top-level attributes
| Attribute | Description |
|:--------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------|
| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple collections |
| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../paths.md) that point to external templates that can be leveraged by multiple collections |
| [`collections`](#collection-attributes) | contains definitions of collections you wish to add to one or more libraries |
| [`dynamic_collections`](#dynamic-collection-attributes) | contains definitions of [dynamic collections](../../builders/dynamic.md) you wish to create |
* One of `metadata`, `collections` or `dynamic_collections` must be present for the File to run, else you will receive an error when trying to run the file against your library.
* Example Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM)
## Collection Operations & Attributes
Whilst [Library Operations](../operations.md) are used to control library-wide operations, Collection Files can be used as a method to perform more limited operations, such as:
* Syncing collections with the source list if one is used (such as Trakt Lists, TMDB Lists, etc.)
* Sending missing media to Sonarr/Radarr
* Adding labels to items in collections
* Showing and Hiding collections at set intervals (i.e. show Christmas collections in December only)
These operations can be performed without the need to physically build a collection (using the `build_collection: false` attribute)
Examples of these can be seen here
???+ example "Examples of Collection Operations"
Click the :fontawesome-solid-circle-plus: icon to learn more
=== "Example 1 - Sync Collection to List"
```yaml
collections:
Christmas Extravaganza:
trakt_list: https://trakt.tv/users/plexmetamanager/lists/christmas-extravaganza-non-tv-movie #(1)!
sync_mode: append #(2!)
collection_order: custom #(3)!
```
1. This is a Trakt List builder, telling PMM to build a collection based on the items in this list
1. If items are removed from the source list, having sync mode set to `append` means they will not be removed from the collection in Plex. Set this to `sync` if you want the items removed in the collection too
3. Sort the collection in the order that it is received from the Trakt list
=== "Example 2 - Send to Arr"
```yaml
collections:
IMDb Top 250:
imdb_chart: top_movies
collection_order: custom #(1)!
radarr_add_missing: true #(2)!
```
1. Sorts the collection in the same order as is received by the source list
2. Sends items that are in the source list but are not in your Plex library to Radarr. Replace with `sonarr_add_missing` for any show-based builder.
=== "Example 3 - Add labels"
```yaml
collections:
Radarr Tags:
build_collection: false #(1)!
radarr_taglist: mytag #(2)!
item_label: myplextag #(3)!
```
1. Tells PMM to not physically build a collection, but it will still perform the actions of the collection
2. Find all items in Radarr that have the tag `mytag`
3. For each of the items with `mytag` in Radarr, apply the `myplextag` to the items in the Plex library
=== "Example 4 - Schedule Collection"
```yaml
collections:
Christmas Extravaganza:
trakt_list: https://trakt.tv/users/plexmetamanager/lists/christmas-extravaganza-non-tv-movie #(1)!
schedule: range(12/01-12/31) #(2)!
delete_not_scheduled: true #(3)!
```
1. Tells PMM to not physically build a collection, but it will still perform the actions of the collection
2. Only run this collection from December 1st through December 31st
3. If today is not part of the above scheduled range, delete the Christmas Extravaganza collection if it exists in the Plex library
There are multiple types of attributes that can be utilized within a collection:
* [Builders](../../builders/overview.md)
* [Settings/Updates](../../metadata/update.md)
* [Filters](../../builders/filters.md)
## Example File
Below is a common Collection File which will create two collections in a Plex library.
It will sync the collections to the source lists, order them randomly, and apply a summary to the collection.
```yaml
collections:
Trending:
trakt_trending: 10
tmdb_trending_daily: 10
tmdb_trending_weekly: 10
sort_title: +1_Trending
sync_mode: sync
smart_label: random
summary: Movies Trending across the internet
Popular:
tmdb_popular: 40
imdb_list:
url: https://www.imdb.com/search/title/?title_type=feature,tv_movie,documentary,short
limit: 40
sort_title: +2_Popular
sync_mode: sync
smart_label: random
summary: Popular Movies across the internet
```
## Dynamic Collections
In addition to manually defining each Collection that you want in your library, Plex Meta Manager can also dynamically create collections based on a variety of different criteria, such as
* 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.)
* Collections for each of a Trakt Users Lists.
A full list of the available options is available on the [Dynamic Collections](../../builders/dynamic.md) page

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

@ -0,0 +1,259 @@
# 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**.

@ -0,0 +1,138 @@
# 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> |

@ -0,0 +1,210 @@
# 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**

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 KiB

@ -0,0 +1,626 @@
# Overlay Files
Overlay Files holds information on how Plex Meta Manager should create Overlays. There are a large number of builders available to build Overlays,
## Overview
This example is an Overlay file with a basic overlay which is saved in a file called `MyOverlays.yml` within the location mapped as `config` in my setup.
This specific example will target items in my library with a 4K resolution and will add an overlay with text that says "Direct Play" located at the bottom of the poster in the center.
???+ tip "Example Overlay"
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
overlays: #(1)!
directplay:
overlay:
name: text(Direct Play) #(2)!
horizontal_offset: 0
horizontal_align: center
vertical_offset: 150
vertical_align: bottom
font_size: 63
font_color: "#FFFFFF"
back_color: "#00000099"
back_radius: 30
back_padding: 30
plex_search: #(3)!
all:
resolution: 4K
```
1. This must appear once and **only once** in any Overlay file
2. This tells PMM to use text as the overlay rather than an image
3. This is the criteria that PMM will use to define what should receive the overlay
Here is an example of how the Overlay will look
![myoverlays_example.png](myoverlays_example.png)
For the purpose of this example, we are going to save the File as `MyOverlays.yml` within the location mapped as `config` in our setup.
I then call "MyOverlays.yml" in my [Configuration File](../configuration.md) within the `Overlay_files` section
???+ example "config.yml Example Overlay File Addition"
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
libraries:
Movies: #(1)!
overlay_files:
- remove_overlays: false
- file: config/MyOverlays.yml #(2)!
```
1. This must match the name of a library in your Plex server
2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides.
???+ example "config.yml Example Collection File Addition"
Click the :fontawesome-solid-circle-plus: icon to learn more
```yaml
libraries:
Movies: #(1)!
Overlay_files:
- file: config/MyOverlays.yml #(2)!
```
1. This must match the name of a library in your Plex server
2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides.
Whenever I execute Plex Meta Manager and the Movies library is run, MyOverlays.yml will run and my "Direct Play" overlay will appear on all items with a 4K resolution.
## File Attributes
Overlay Files can utilize the following top-level attributes
| Attribute | Description |
|:-----------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple Overlays |
| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../paths.md) that point to external templates that can be leveraged by multiple Overlays |
| [`overlays`](#overlay-attributes) | contains definitions of Overlays you wish to add to one or more libraries |
* Example Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM)
## Overlay Understandings
???+ danger "Important Notes"
When using overlays, there is some knowledge that you should be aware of at all times. This is outlined below.
Failure to understand all of these points may cause issues when utilizing Overlays.
All overlay coordinates assume 1000 x 1500 for Posters and 1920 x 1080 for Backgrounds and Title Cards.
All overlays should be in a format that is supports transparency should it be required (i.e. PNG)
If an overlay is not 1000 x 1500 or 1920 x 1080 in size, you will need to use positional attributes to specify where on the base poster the Overlay should be. This is exampled in [Overview](#overview)
Although Overlays are modular in that you can pick and choose what you would like to apply, each overlay you want to apply **must** be executed in the same Plex Meta Manager run and should not be scheduled, this will result in overlays that are not scheduled to run being deleted.
* For example, you cannot schedule a "4K Resolution" overlay to only apply on a Monday and a "Direct Play" overlay to only apply on a Tuesday. This will not work, both overlays must be scheduled to run at the same time.
Plex Meta Manager and Plex **will not** remove old Overlaid images from the Plex file structure or database when new updates are available. On large libraries, this can often result in Image Bloat.
* We recommend you read more about this and the solution on the [Plex Image Cleanup](../../pmm/essentials/scripts/image-cleanup.md) page.
There is an attribute called `reapply_overlays` which, when set to true, will force overlays to reapply even when it is not necessary to do so [overlays only update when something has changed, this bypasses that behaviour]. This will increase how long Plex Meta Manager takes to run and will also result in Image Bloat.
* Ensure `reapply_overlays` is set to `false` if you see it in your Configuration File. If it has previously been set to true we recommend using [Plex Image Cleanup](../../pmm/essentials/scripts/image-cleanup.md) to get rid of the bloat.
To remove all overlays from your library, add `remove_overlays: true` to the `overlay_files` [Libraries Attribute](../libraries.md#remove-overlays).**
* See the above note on Plex Meta Manager not removing the overlaid images, this is still true here.
???+ danger "Important Notice"
Once you have applied overlays to your posters in Plex, it is highly recommended that you never change artwork on a thing directly in Plex again. PMM uses labels on the items in Plex to decide if an overlay has been applied, so if you change artwork behind PMM's back things can become confused and items can end up with double-overlaid posters. It's recommended to set new artwork using the asset directory, which will ensure that this doesn't happen.
**To change a single overlay original image either remove the `Overlay` shared label and update the Image in Plex or replace the image in the assets folder and then PMM will overlay the new image**
## Overlay Attributes
Overlay Files can utilize the following top-level attributes
| Attribute | Description |
|:--------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------|
| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple overlays |
| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../paths.md) that point to external templates that can be leveraged by multiple overlays |
| [`queues`](#overlay-queues) | contains the positional attributes of queues |
| [`overlays`](#overlays-attributes) | contains definitions of overlays you wish to add |
* `overlays` is required in order to run the Overlay File.
* Example Overlay Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM)
There are multiple types of attributes that can be utilized within an overlay:
* [Builders](../../builders/overview.md)
* [Settings/Updates](../../metadata/update.md)
* [Filters](../../builders/filters.md)
## Example Files
Below is a common Overlay File which will create an Overlay for all items which have a 4K resolution.
To get you started, Plex Meta Manager includes three files for Overlays - 4K, Dolby and HDR.
```yaml
overlays:
4K:
plex_search:
all:
resolution: 4K
```
![example_4k.png](example_4k.png)
I can then layer another Overlay for items which have HDR.
Plex Meta Manager will apply Overlays in the order they are defined in the file, so my HDR overlay appears on top of my 4K overlay in this scenario.
```yaml
overlays:
4K:
plex_search:
all:
resolution: 4K
HDR:
plex_search:
all:
hdr: true
```
![example_4khdr.png](example_4khdr.png)
## Advanced Overlay Attributes
The below attributes are also available for Overlay files, to give more granular control over how they function.
| Attribute | Description | Required |
|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|
| `name` | Name of the overlay. | &#9989; |
| `file` | Local location of the Overlay Image. | &#10060; |
| `url` | URL of Overlay Image Online. | &#10060; |
| `git` | Location in the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) of the Overlay Image. | &#10060; |
| `repo` | Location in the [Custom Repo](../settings.md#custom-repo) of the Overlay Image. | &#10060; |
| [`group`](#overlay-groups) | Name of the Grouping for this overlay. Only one overlay with the highest weight per group will be applied.<br>**`weight` is required when using `group`**<br>**Values:** group name | &#10060; |
| [`queue`](#overlay-queues) | Name of the Queue for this overlay. Define `queue` positions using the `queues` attribute at the top level of an Overlay File. Overlay with the highest weight is applied to the first position and so on.<br>**`weight` is required when using `queue`**<br>**Values:** queue name | &#10060; |
| `weight` | Weight of this overlay in its group or queue.<br>**`group` or `queue` is required when using `weight`**<br>**Values:** Integer 0 or greater | &#10060; |
| `horizontal_offset` | Horizontal Offset of this overlay. Can be a %.<br>**`vertical_offset` is required when using `horizontal_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | &#10060; |
| `horizontal_align` | Horizontal Alignment of the overlay.<br>**Values:** `left`, `center`, `right` | &#10060; |
| `vertical_offset` | Vertical Offset of this overlay. Can be a %.<br>**`horizontal_offset` is required when using `vertical_offset`**<br>**Value:** Integer 0 or greater or 0%-100% | &#10060; |
| `vertical_align` | Vertical Alignment of the overlay.<br>**Values:** `top`, `center`, `bottom` | &#10060; |
| `font` | System Font Filename or path to font file for the Text Overlay.<br>**Value:** System Font Filename or path to font file | &#10060; |
| `font_style` | Font style for Variable Fonts. Only needed when using a Variable Font.<br>**Value:** Variable Font Style | &#10060; |
| `font_size` | Font Size for the Text Overlay.<br>**Value:** Integer greater than 0 | &#10060; |
| `font_color` | Font Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | &#10060; |
| `stroke_width` | Font Stroke Width for the Text Overlay.<br>**Value:** Integer greater than 0 | &#10060; |
| `stroke_color` | Font Stroke Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | &#10060; |
| `back_color` | Backdrop Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | &#10060; |
| `back_width` | Backdrop Width for the Text Overlay. If `back_width` is not specified the Backdrop Sizes to the text<br>**`back_height` is required when using `back_width`**<br>**Value:** Integer greater than 0 | &#10060; |
| `back_height` | Backdrop Height for the Text Overlay. If `back_height` is not specified the Backdrop Sizes to the text<br>**`back_width` is required when using `back_height`**<br>**Value:** Integer greater than 0 | &#10060; |
| `back_align` | Alignment for the Text Overlay inside the backdrop. If `back_align` is not specified the Backdrop Centers the text<br>**`back_width` and `back_height` are required when using `back_align`**<br>**Values:** `left`, `right`, `center`, `top`, `bottom` | &#10060; |
| `back_padding` | Backdrop Padding for the Text Overlay.<br>**Value:** Integer greater than 0 | &#10060; |
| `back_radius` | Backdrop Radius for the Text Overlay.<br>**Value:** Integer greater than 0 | &#10060; |
| `back_line_color` | Backdrop Line Color for the Text Overlay.<br>**Value:** Color Hex Code in format `#RGB`, `#RGBA`, `#RRGGBB` or `#RRGGBBAA`. | &#10060; |
| `back_line_width` | Backdrop Line Width for the Text Overlay.<br>**Value:** Integer greater than 0 | &#10060; |
| `addon_offset` | Text Addon Image Offset from the text.<br>**`addon_offset` Only works with text overlays**<br>**Value:** Integer 0 or greater | &#10060; |
| `addon_position` | Text Addon Image Alignment in relation to the text.<br>**`addon_position` Only works with text overlays**<br>**Values:** `left`, `right`, `top`, `bottom` | &#10060; |
* If `url`, `git`, and `repo` are all not defined then PMM will look in your `config/overlays` folder for a `.png` file named the same as the `name` attribute.
### Positional Image Overlays
Positional overlays can be of any size and use `horizontal_offset`, `horizontal_align`, `vertical_offset`, and `vertical_align` to position the overlay on the image.
???+ tip
This overlay example uses one of the [PMM Default Overlay](../../defaults/overlays.md) images, which isn't necessary but is used just for this example.
```yaml
overlays:
IMDB-Top-250:
imdb_chart: top_movies
overlay:
name: IMDB-Top-250
pmm: ribbon/yellow/imdb.png
horizontal_offset: 0
horizontal_align: right
vertical_offset: 0
vertical_align: bottom
```
![example_positional.png](example_positional.png)
### Blurring Overlay
There is a special overlay named `blur` that when given as the overlay name will instead of finding the image will just blur the image instead.
You can control the level of the blur by providing a number with the attribute like so `blur(##)`.
```yaml
overlays:
blur:
overlay:
name: blur(50)
builder_level: episode
plex_search:
all:
resolution: 4K
```
![](example_blur.png)
### Backdrop Overlay
There is a special overlay named `backdrop` that when given as the overlay name will instead of finding the image will just apply the background instead.
You can set the size of the backdrop with `back_width` and `back_height`. By Default, they will extend the length of the Image.
```yaml
overlays:
backdrop:
overlay:
name: backdrop
back_color: "#00000099"
back_height: 100
vertical_position: top
plex_all: true
```
This example could be useful if you want to have a black banner, and then use a [Text Overlay](#text-overlay) to add text on top.
![example_backdrop.png](example_backdrop.png)
### Text Overlay
You can add text as an overlay using the special `text()` overlay name. Anything inside the parentheses will be added as an overlay onto the image. Ex `text(4K)` adds `4K` to the image.
You can control the font, font size and font color using the `font`, `font_size`, and `font_color` overlay attributes.
You can control the backdrop of the text using the various `back_*` attributes.
The `horizontal_offset` and `vertical_offset` overlay attributes are required when using Text Overlays.
PMM includes multiple fonts in the [`fonts` folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/fonts) which can be called using `fonts/fontname.ttf`
```yaml
overlays:
backdrop:
overlay:
name: backdrop
back_color: "#00000099"
back_height: 100
vertical_position: top
plex_all: true
mytext:
overlay:
name: text(This Movie Is Awesome)
horizontal_offset: 0
horizontal_align: center
vertical_offset: 30
vertical_align: top
font_size: 63
font_color: "#FFFFFF"
plex_all: true
```
Note that we have built up on our backdrop overlay that we created in our previous example
![example_text.png](example_text.png)
#### Special Text Variables
You can use the item's metadata to determine the text by adding Special Text Variables to your text Overlay.
There are multiple Special Text Variables that can be used when formatting the text. The variables are defined like so `<<name>>` and some can have modifiers like so `<<name$>>` where `$` is the modifier. The available options are:
| Special Text Variables & Mods | Movies | Shows | Seasons | Episodes |
|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------:|:--------:|:--------:|:--------:|
| `<<audience_rating>>`: audience rating (`8.7`, `9.0`)<br>`<<audience_rating%>>`: audience rating out of 100 (`87`, `90`)<br>`<<audience_rating#>>`: audience rating removing `.0` as needed (`8.7`, `9`)<br>`<<audience_rating/>>`: audience rating on a 5 point scale (`8.6` shows as `4.3`) | &#9989; | &#9989; | &#10060; | &#9989; |
| `<<critic_rating>>`: critic rating (`8.7`, `9.0`)<br>`<<critic_rating%>>`: critic rating out of 100 (`87`, `90`)<br>`<<critic_rating#>>`: critic rating removing `.0` as needed (`8.7`, `9`)<br>`<<critic_rating/>>`: critic rating on a 5 point scale (`8.6` shows as `4.3`) | &#9989; | &#9989; | &#10060; | &#9989; |
| `<<user_rating>>`: user rating (`8.7`, `9.0`)<br>`<<user_rating%>>`: user rating out of 100 (`87`, `90`)<br>`<<user_rating#>>`: user rating removing `.0` as needed (`8.7`, `9`)<br>`<<user_rating/>>`: user rating on a 5 point scale (`8.6` shows as `4.3`) | &#9989; | &#9989; | &#9989; | &#9989; |
| `<<title>>`: Title of the Item<br>`<<titleU>>`: Uppercase Title of the Item<br>`<<titleL>>`Lowercase Title of the Item<br>`<<titleP>>`Proper Title of the Item | &#9989; | &#9989; | &#9989; | &#9989; |
| `<<show_title>>`: Title of the Item's Show<br>`<<show_itleU>>`: Uppercase Title of the Item's Show<br>`<<show_titleL>>`Lowercase Title of the Item's Show<br>`<<show_titleP>>`Proper Title of the Item's Show | &#10060; | &#10060; | &#9989; | &#9989; |
| `<<season_title>>`: Title of the Item's Season<br>`<<season_titleU>>`: Uppercase Title of the Item's Season<br>`<<season_titleL>>`Lowercase title of the Item's Season<br>`<<season_titleP>>`Proper title of the Item's Season | &#10060; | &#10060; | &#10060; | &#9989; |
| `<<original_title>>`: Original Title of the Item<br>`<<original_titleU>>`: Original Title of the Item<br>`<<original_titleL>>`Lowercase Original Title of the Item<br>`<<original_titleP>>`Proper Original Title of the Item | &#9989; | &#9989; | &#10060; | &#10060; |
| `<<edition>>`: Edition of the Item<br>`<<editionU>>`: Uppercase Edition of the Item<br>`<<editionL>>`Lowercase Edition of the Item<br>`<<editionP>>`Proper Edition of the Item | &#9989; | &#10060; | &#10060; | &#10060; |
| `<<content_rating>>`: Content Rating of the Item<br>`<<content_ratingU>>`: Uppercase Content Rating of the Item<br>`<<content_ratingL>>`Lowercase Content Rating of the Item<br>`<<content_ratingP>>`Proper Content Rating of the Item | &#9989; | &#9989; | &#10060; | &#9989; |
| `<<episode_count>>`: Number of Episodes (`1`)<br>`<<episode_countW>>`: Number of Episodes As Words (`One`)<br>`<<episode_countWU>>`: Number of Episodes As Uppercase Words (`ONE`)<br>`<<episode_countWL>>`: Number of Episodes As Lowercase Words (`one`)<br>`<<episode_count0>>`: Number of Episodes With 10s Padding (`01`)<br>`<<episode_count00>>`: Number of Episodes With 100s Padding (`001`) | &#10060; | &#9989; | &#9989; | &#10060; |
| `<<season_number>>`: Season Number (`1`)<br>`<<season_numberW>>`: Season Number As Words (`One`)<br>`<<season_numberWU>>`: Season Number As Uppercase Words (`ONE`)<br>`<<season_numberWL>>`: Season Number As Lowercase Words (`one`)<br>`<<season_number0>>`: Season Number With 10s Padding (`01`)<br>`<<season_number00>>`: Season Number With 100s Padding (`001`) | &#10060; | &#10060; | &#9989; | &#9989; |
| `<<episode_number>>`: Episode Number (`1`)<br>`<<episode_numberW>>`: Episode Number As Words (`One`)<br>`<<episode_numberWU>>`: Episode Number As Uppercase Words (`One`)<br>`<<episode_numberWL>>`: Episode Number As Lowercase Words (`one`)<br>`<<episode_number0>>`: Episode Number With 10s Padding (`01`)<br>`<<episode_number00>>`: Episode Number With 100s Padding (`001`) | &#10060; | &#10060; | &#10060; | &#9989; |
| `<<versions>>`: Number of Versions of the Item (`1`)<br>`<<versionsW>>`: Number of Versions of the Item As Words (`One`)<br>`<<versionsWO>>`: Number of Versions of the Item As Uppercase Words (`ONE`)<br>`<<versionsWL>>`: Number of Versions of the Item As Words (`one`)<br>`<<versions0>>`: Number of Versions of the Item With 10s Padding (`01`)<br>`<<versions00>>`: Number of Versions of the Item With 100s Padding (`001`) | &#9989; | &#10060; | &#10060; | &#9989; |
| `<<runtime>>`: Complete Runtime of the Item in minutes (`150`)<br>`<<runtimeH>>`: Hours in runtime of the Item (`2`)<br>`<<runtimeM>>`: Minutes remaining in the hour in the runtime of the Item (`30`)<br>**Show and Season use average Episode Runtime.** | &#9989; | &#9989; | &#9989; | &#9989; |
| `<<bitrate>>`: Bitrate of the first media file for an item.<br>`<<bitrateH>>`: Bitrate of the media file with the highest bitrate<br>`<<bitrateL>>`: Bitrate of the media file with the lowest bitrate | &#9989; | &#10060; | &#10060; | &#9989; |
| `<<originally_available>>`: Original Available Date of the Item<br>`<<originally_available[FORMAT]>>`: Original Available Date of the Item in the given format. [Format Options](https://strftime.org/) | &#9989; | &#9989; | &#10060; | &#9989; |
???+ tip
You can use the `mass_audience_rating_update` or `mass_critic_rating_update` [Library Operation](../operations.md) to update your plex ratings to various services like `tmdb`, `imdb`, `mdb`, `metacritic`, `letterboxd` and many more.
```yaml
overlays:
backdrop:
overlay:
name: backdrop
back_color: "#00000099"
back_height: 100
vertical_position: top
plex_all: true
mytext:
overlay:
name: text(Critic Rating is <<critic_rating>>)
horizontal_offset: 0
horizontal_align: center
vertical_offset: 20
vertical_align: top
font_size: 63
font_color: "#FFFFFF"
plex_all: true
```
Note that we have once again built up on our backdrop overlay that we created in one of our previous examples
![example_text.png](example_specialtext.png)
#### Special Text Modifiers
Some Special Text attributes (such as ratings) have modifiers which control how they are output. This is detailed in the above table.
Using the above example for the Critic Rating overlay, I now want to display the rating as "out of 5 stars" instead of "out of 10", so I will use the `/` modifier on my `<<critic_rating>>` attribute
```yaml
overlays:
backdrop:
overlay:
name: backdrop
back_color: "#00000099"
back_height: 100
vertical_position: top
plex_all: true
mytext:
overlay:
name: text(Rated <<critic_rating/>> out of 5!)
horizontal_offset: 0
horizontal_align: center
vertical_offset: 20
vertical_align: top
font_size: 63
font_color: "#FFFFFF"
plex_all: true
```
![example_specialtextmodifier.png](example_specialtextmodifier.png)
I want to add `S##E##` to all my episode images.
```yaml
overlays:
backdrop:
builder_level: episode
overlay:
name: backdrop
back_color: "#00000099"
back_height: 100
vertical_position: top
plex_all: true
season_episode_info:
builder_level: episode
overlay:
name: text(This is S<<season_number0>>E<<episode_number0>>)
horizontal_offset: 0
horizontal_align: center
vertical_offset: 20
vertical_align: top
font_size: 63
font_color: "#FFFFFF"
plex_all: true
```
![example_episodetext.png](example_episodetext.png)
##### Common Special Text Uses
These are some commonly-used examples of Special Text overlays:
| Special Text | Example Output |
|:------------------------------------------------------------------|--------------------|
| `name: text(S<<season_number0>>E<<episode_number0>>)` | S01E01 |
| `name: text(Season <<season_number>> Episode <<episode_number>>)` | Season 1 Episode 1 |
| `name: text(Season <<season_number>>)` | Season 1 |
| `name: text(Episode <<episode_number>>)` | Episode 1 |
| `name: "text(Runtime: <<runtime>>m)"` | Runtime: 90m |
| `name: "text(Runtime: <<runtimeH>>h <<runtimeM>>m)"` | Runtime: 1h 30m |
#### Text Addon Images
You can add an image to accompany the text by specifying the image location using `file`, `url`, `git`, or `repo`.
Use `addon_offset` to control the space between the text and the image.
Use `addon_position` to control which side of the text the image will be located on.
???+ tip
This overlay example uses one of the [PMM Default Overlay](../../defaults/overlays.md) images, which isn't necessary but is used just for this example.
```yaml
overlays:
rating_with_logo:
overlay:
name: text(audience_rating)
pmm: rating/IMDb.png
horizontal_offset: 15
horizontal_align: left
vertical_offset: 15
vertical_align: top
font: fonts/Inter-Medium.ttf
font_size: 63
font_color: "#FFFFFF"
back_color: "#00000099"
back_radius: 30
back_width: 300
back_height: 105
addon_position: left
addon_offset: 25
plex_all: true
```
![example_addonoffset.png](example_addonoffset.png)
### Overlay Groups
Overlay groups are defined by the name given to the `group` attribute. Only one overlay with the highest weight per group will be applied.
This is an example where the Multi-Audio overlay will be applied over the Dual-Audio overlay for every item found by both.
```yaml
overlays:
Dual-Audio:
overlay:
name: Dual-Audio
pmm: images/Dual-Audio
group: audio_language
weight: 10
horizontal_offset: 0
horizontal_align: center
vertical_offset: 15
vertical_align: bottom
plex_all: true
filters:
audio_language.count_gt: 1
Multi-Audio:
overlay:
name: Multi-Audio
pmm: images/Multi-Audio
group: audio_language
weight: 20
horizontal_offset: 0
horizontal_align: center
vertical_offset: 15
vertical_align: bottom
plex_all: true
filters:
audio_language.count_gt: 2
```
### Overlay Queues
Overlay queues are defined by the name given to the `queue` attribute. The overlay with the highest weight is put into the first queue position, then the second highest is placed in the second queue position and so on.
You can define the queue positions by using the `queues` attribute at the top level of an Overlay File. You can define as many positions as you want.
```yaml
queues:
custom_queue_name:
- horizontal_offset: 300 # This is the first position
horizontal_align: center
vertical_offset: 1375
vertical_align: top
- horizontal_offset: 300 # This is the second position
horizontal_align: center
vertical_offset: 1250
vertical_align: top
overlays:
IMDb:
imdb_chart: popular_movies
overlay:
name: text(IMDb Popular)
queue: custom_queue_name
weight: 20
font: fonts/Inter-Medium.ttf
font_size: 65
font_color: "#FFFFFF"
back_color: "#00000099"
back_radius: 30
back_width: 380
back_height: 105
TMDb:
tmdb_popular: 100
overlay:
name: text(TMDb Popular)
queue: custom_queue_name
weight: 10
font: fonts/Inter-Medium.ttf
font_size: 65
font_color: "#FFFFFF"
back_color: "#00000099"
back_radius: 30
back_width: 400
back_height: 105
```
## Suppress Overlays
You can add `suppress_overlays` to an overlay definition and give it a list or comma separated string of overlay names you want suppressed from this item if this overlay is attached to the item.
So in this example if the `4K-HDR` overlay matches an item then the `4K` and `HDR` overlays will also match. The `suppress_overlays` attribute on `4K-HDR` will stop the overlays specified (`4K` and `HDR`) from also being applied.
```yaml
overlays:
4K:
plex_search:
all:
resolution: 4K
HDR:
plex_search:
all:
hdr: true
4K-HDR:
suppress_overlays:
- 4K
- HDR
plex_search:
all:
resolution: 4K
hdr: true
```
## Examples
### Example Overlay File
```yaml
overlays:
4K:
overlay:
name: 4K # This will look for a local overlays/4K.png in your config folder
plex_search:
all:
resolution: 4K
HDR:
overlay:
name: HDR
pmm: HDR
plex_search:
all:
hdr: true
Dolby:
overlay:
name: Dolby
url: https://somewebsite.com/dolby_overlay.png
plex_all: true
filters:
has_dolby_vision: true
```
### Example Folder Structure
```
config
├── config.yml
├── Movies.yml
├── TV Shows.yml
├── Overlays.yml
├── overlays
│ ├── 4K.png
│ ├── Dolby.png
│ ├── HDR.png
```

@ -0,0 +1,139 @@
# 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](../paths.md) 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. | &#9989; |
| `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. | &#10060; |
| `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. | &#10060; |
| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | &#10060; |
* 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,39 @@
# 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](../config/libraries.md#metadata-path) within the [Configuration File](../config/configuration.md).
## Example
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
```

@ -24,7 +24,7 @@ This example is an advanced version of the library mappings which highlights som
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
- pmm: imdb - pmm: imdb
- pmm: studio - pmm: studio
@ -34,11 +34,11 @@ This example is an advanced version of the library mappings which highlights som
mass_critic_rating_update: tmdb mass_critic_rating_update: tmdb
split_duplicates: true split_duplicates: true
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
- pmm: tmdb - pmm: tmdb
- pmm: network - pmm: network
overlay_path: overlay_files:
- remove_overlays: false - remove_overlays: false
- file: config/Overlays.yml - file: config/Overlays.yml
TV Shows On Second Plex: TV Shows On Second Plex:
@ -46,12 +46,12 @@ This example is an advanced version of the library mappings which highlights som
plex: plex:
url: http://192.168.1.98:32400 url: http://192.168.1.98:32400
token: #################### token: ####################
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
- pmm: tmdb - pmm: tmdb
- pmm: network - pmm: network
Anime: Anime:
metadata_path: collection_files:
- file: config/Anime.yml - file: config/Anime.yml
- pmm: myanimelist - pmm: myanimelist
radarr: radarr:
@ -79,20 +79,21 @@ This example is an advanced version of the library mappings which highlights som
The available attributes for each library are as follows: The available attributes for each library are as follows:
| Attribute | Values | Default | Required | | Attribute | Values | Default | Required |
|:-------------------------------------------------------|:------------------------------------------------------------------------------------------------------|:--------------------------------------|:------------------------------------------------------------------:| |:----------------------------------------------------|:------------------------------------------------------------------------------------------------------|:--------------------------------------|:------------------------------------------------------------------:|
| [`library_name`](#library-name) | Library name (required only when trying to use multiple libraries with the same name) | Base Attribute Name | :fontawesome-solid-circle-xmark:{ .red } | | [`library_name`](#library-name) | Library name (required only when trying to use multiple libraries with the same name) | Base Attribute Name | :fontawesome-solid-circle-xmark:{ .red } |
| [`metadata_path`](#metadata-path) | Location of Metadata YAML files | `/config/<<MAPPING_NAME>>.yml` | :fontawesome-solid-circle-xmark:{ .red } | | [`collection_files`](#collection-file) | Location of Collection YAML files | `/config/<<MAPPING_NAME>>.yml` | :fontawesome-solid-circle-xmark:{ .red } |
| [`overlay_path`](#overlay-path) | Location of Overlay YAML files | None | :fontawesome-solid-circle-xmark:{ .red } | | [`overlay_files`](#overlay-file) | Location of Overlay YAML files | None | :fontawesome-solid-circle-xmark:{ .red } |
| [`report_path`](#report-path) | Location to create the YAML file listing added, removed, filtered, and missing items for this library | `/config/<<MAPPING_NAME>>_report.yml` | :fontawesome-solid-circle-xmark:{ .red } | | [`metadata_files`](#metadata-file) | Location of Metadata YAML files | None | :fontawesome-solid-circle-xmark:{ .red } |
| [`template_variables`](#library-template-variables) | Library template variables to be applied to every Metadata and Overlay file run. | N/A | :fontawesome-solid-circle-xmark:{ .red } | | [`report_path`](#report-path) | Location to create the YAML file listing added, removed, filtered, and missing items for this library | `/config/<<MAPPING_NAME>>_report.yml` | :fontawesome-solid-circle-xmark:{ .red } |
| [`schedule`](../builders/details/schedule.md) | Use any [schedule option](../builders/details/schedule.md) to control when this library is run. | daily | :fontawesome-solid-circle-xmark:{ .red } | | [`template_variables`](#library-template-variables) | Library template variables to be applied to every Metadata and Overlay file run. | N/A | :fontawesome-solid-circle-xmark:{ .red } |
| [`operations`](operations.md) | Library Operations to run | N/A | :fontawesome-solid-circle-xmark:{ .red } | | [`schedule`](../builders/details/schedule.md) | Use any [schedule option](../builders/details/schedule.md) to control when this library is run. | daily | :fontawesome-solid-circle-xmark:{ .red } |
| [`settings`](settings.md) | Any `setting` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | | [`operations`](operations.md) | Library Operations to run | N/A | :fontawesome-solid-circle-xmark:{ .red } |
| [`plex`](plex.md) | Any `plex` attribute that overrides a global value | global | :fontawesome-solid-circle-check:{ .green } Either here or globally | | [`settings`](settings.md) | Any `setting` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } |
| [`radarr`](radarr.md) | Any `radarr` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | | [`plex`](plex.md) | Any `plex` attribute that overrides a global value | global | :fontawesome-solid-circle-check:{ .green } Either here or globally |
| [`sonarr`](sonarr.md) | Any `sonarr` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | | [`radarr`](radarr.md) | Any `radarr` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } |
| [`tautulli`](tautulli.md) | Any `tautulli` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } | | [`sonarr`](sonarr.md) | Any `sonarr` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } |
| [`tautulli`](tautulli.md) | Any `tautulli` attribute that overrides a global value | global | :fontawesome-solid-circle-xmark:{ .red } |
### Library Name ### Library Name
@ -118,45 +119,45 @@ Each library that the user wants Plex Meta Manager to interact with must be docu
* 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.
### Metadata Path ### Collection File
The `metadata_path` attribute is used to define [Metadata Files](../metadata/metadata.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](paths.md) for how to define them. 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](paths.md) for how to define them.
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
- pmm: tmdb - pmm: tmdb
- pmm: network - pmm: network
``` ```
By default, when `metadata_path` is missing Plex Meta Manager will look within the root PMM directory for a metadata 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 ```yaml
libraries: libraries:
TV Shows: TV Shows:
``` ```
### Overlay Path ### Overlay File
The `overlay_path` attribute is used to define [Overlay Files](../metadata/overlay.md) by specifying the path type and path of the files that will be executed against the parent library. See [Path Types](paths.md) for how to define them. 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](paths.md) for how to define them.
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
overlay_path: overlay_files:
- file: config/Overlays.yml - file: config/Overlays.yml
``` ```
### Special Overlay Path Calls ### Special Overlay File Calls
#### Remove Overlays #### Remove Overlays
You can remove overlays from a library by adding `remove_overlays: true` to `overlay_path`. You can remove overlays from a library by adding `remove_overlays: true` to `overlay_files`.
???+ warning "Proceed with Caution" ???+ warning "Proceed with Caution"
@ -165,16 +166,16 @@ You can remove overlays from a library by adding `remove_overlays: true` to `ove
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
overlay_path: overlay_files:
- remove_overlays: true - remove_overlays: true
- file: config/Overlays.yml - file: config/Overlays.yml
``` ```
#### Reapply Overlays #### Reapply Overlays
You can reapply overlays from a library by adding `reapply_overlays: true` to `overlay_path`. This will reapply overlays to every item in your library. 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.
???+ danger "Important Notice" ???+ danger "Important Notice"
@ -183,16 +184,16 @@ You can reapply overlays from a library by adding `reapply_overlays: true` to `o
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
overlay_path: overlay_files:
- reapply_overlays: true - reapply_overlays: true
- file: config/Overlays.yml - file: config/Overlays.yml
``` ```
#### Reset Overlays #### Reset Overlays
You can reset overlays from a library by adding `reset_overlays` to `overlay_path` and setting it to either `tmdb` or `plex` depending on where you want to source the images from. This will use the reset image when overlaying items in your library. 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.
???+ danger "Important Notice" ???+ danger "Important Notice"
@ -202,16 +203,16 @@ You can reset overlays from a library by adding `reset_overlays` to `overlay_pat
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
overlay_path: overlay_files:
- reset_overlays: plex - reset_overlays: plex
- file: config/Overlays.yml - file: config/Overlays.yml
``` ```
### Schedule Overlays ### Schedule Overlays
You can schedule all overlays from a library by adding `schedule` to `overlay_path` and setting it to [Any Schedule Option](../builders/details/schedule.md). 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).
You cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each time PMM is run. You cannot schedule individual Overlay Files, as any unscheduled overlay file will be removed each time PMM is run.
@ -220,13 +221,30 @@ You cannot schedule individual Overlay Files, as any unscheduled overlay file wi
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
overlay_path: overlay_files:
- schedule: weekly(sunday) - schedule: weekly(sunday)
- file: config/Overlays.yml - file: config/Overlays.yml
``` ```
### 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](paths.md) for how to define them.
???+ tip
As of Plex Meta Manager 1.19.2 "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.
```yaml
libraries:
TV Shows:
metadata_files:
- file: config/metadata.yml
```
### Report Path ### 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 Metadata file. 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.

@ -11,7 +11,7 @@ Within each library, operations can be defined by using the `operations` attribu
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: imdb - pmm: imdb
operations: operations:
mass_critic_rating_update: tmdb mass_critic_rating_update: tmdb
@ -20,31 +20,31 @@ libraries:
The available attributes for the operations attribute are as follows The available attributes for the operations attribute are as follows
| Attribute | Description | Movies | Shows | Music | | 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 } | | [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 } | | [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 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 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 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 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 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 * 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 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 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 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 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 } | | [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 } | | [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 } | | [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 } | | [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 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 } | | [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 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 } | | [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 } | | [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 } | | [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](../metadata/metadata.md) 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 } | | [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 ## Assets For All
@ -656,7 +656,7 @@ Maps content ratings in your library to be changed to other content ratings.
## Metadata Backup ## Metadata Backup
Creates/Maintains a Plex Meta Manager [Metadata File](../metadata/metadata.md) with a full `metadata` mapping based on the library's items locked attributes. 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.
@ -667,7 +667,7 @@ If you point to an existing Metadata File then PMM will Sync the changes to the
| Attribute | Description | | 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 | | `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 metadata file<br>**Values:** Comma-separated string or list of attributes | | `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` | | `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` | | `add_blank_entries` | Will add a line for entries that have no metadata changes<br>**Default:** `true`<br>**Values:** `true` or `false` |

@ -1,22 +1,22 @@
# Path Types # Path Types
YAML Files are defined by their path type and path location for the [`metadata_path`](libraries.md#metadata-path), [`overlay_path`](libraries.md#overlay-path), [`playlist_files`](libraries.md#metadata-path), and [`external_templates`](libraries.md#metadata-path) attributes. YAML Files are defined by their path type and path location for the [`collection_files`](libraries.md#metadata-path), [`overlay_files`](libraries.md#overlay-path), [`playlist_files`](libraries.md#metadata-path), and [`external_templates`](libraries.md#metadata-path) attributes.
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). 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: The path types are outlined as follows:
* `- file:` refers to a metadata file which is located within the system that PMM is being run from. * `- file:` refers to a collection file which is located within the system that PMM is being run from.
* `- folder:` refers to a directory containing metadata files 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/guide.md builders/overlay/playlist file. * `- pmm:` refers to a [PMM Defaults](/defaults/guide.md builders/overlay/playlist file.
* `- url:` refers to a metadata file which is hosted publicly on the internet. * `- url:` refers to a collection file which is hosted publicly on the internet.
* `- git:` refers to a metadata file which is hosted on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs). * `- 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 metadata file which is hosted on a custom repository specified by the user with the [`custom_repo` Setting Attribute](settings.md#custom-repo). * `- 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).
## Examples ## Examples
@ -24,7 +24,7 @@ The path types are outlined as follows:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/path/to/file.yml - file: config/path/to/file.yml
- folder: config/path/to/folder - folder: config/path/to/folder
``` ```
@ -60,7 +60,7 @@ You can define [Template Variables](../builders/templates.md#template-variables)
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: genre - pmm: genre
template_variables: template_variables:
schedule_separator: never schedule_separator: never
@ -75,18 +75,18 @@ In this example there will be two template variables added to every template in
`schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to `hide`. `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 Metadata File. What these variables will do depends on how they're defined in the Collection File.
### Schedule ### Schedule
Each [`metadata_path`](libraries.md#metadata-path), [`overlay_path`](libraries.md#overlay-path), or [`playlist_files`](libraries.md#metadata-path) can be scheduled by adding the `schedule` attribute to the dictionary defining the file. Each [`collection_files`](libraries.md#metadata-path), [`overlay_files`](libraries.md#overlay-path), or [`playlist_files`](libraries.md#metadata-path) can be scheduled by adding the `schedule` attribute to the dictionary defining the file.
Below is an example of a scheduled Metadata File and Playlist File: Below is an example of a scheduled Collection File and Playlist File:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
schedule: weekly(friday) schedule: weekly(friday)
- pmm: actors - pmm: actors
@ -107,12 +107,12 @@ You can define custom Asset Directories per file by adding `asset_directory` to
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
asset_directory: <path_to_assets>/Movies asset_directory: <path_to_assets>/Movies
- pmm: actors - pmm: actors
asset_directory: <path_to_assets>/people asset_directory: <path_to_assets>/people
overlay_path: overlay_files:
- pmm: imdb - pmm: imdb
playlist_files: playlist_files:
- file: config/Playlists.yml - file: config/Playlists.yml
@ -121,18 +121,18 @@ playlist_files:
- <path_to_assets>/playlists2 - <path_to_assets>/playlists2
``` ```
## Metadata Path ## Collection File
The [`metadata_path`](libraries.md#metadata-path) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md. The [`collection_files`](libraries.md#metadata-path) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md.
??? example ??? example
In this example, multiple metadata file path types are defined for the `"TV Shows"` library: In this example, multiple collection file path types are defined for the `"TV Shows"` library:
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TVShows.yml - file: config/TVShows.yml
- folder: config/TV Shows/ - folder: config/TV Shows/
- pmm: tmdb - pmm: tmdb
@ -142,19 +142,19 @@ The [`metadata_path`](libraries.md#metadata-path) attribute is defined under the
Within the above example, PMM will: Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. * 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 metadata files within that directory. * 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 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`. * Then, look within the Custom Defined Repo for a file called `charts.yml`.
* Finally, load the metadata file located at `https://somewhere.com/PopularTV.yml` * Finally, load the collection file located at `https://somewhere.com/PopularTV.yml`
## Overlay Path ## Overlay File
The [`overlay_path`](libraries.md#overlay-path) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md. The [`overlay_files`](libraries.md#overlay-path) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md.
??? example ??? example
@ -163,7 +163,7 @@ The [`overlay_path`](libraries.md#overlay-path) attribute is defined under the [
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- file: config/overlays.yml - file: config/overlays.yml
- folder: config/overlay configs/ - folder: config/overlay configs/
- pmm: imdb - pmm: imdb
@ -173,15 +173,15 @@ The [`overlay_path`](libraries.md#overlay-path) attribute is defined under the [
Within the above example, PMM will: Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `overlays.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. * 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 metadata files within that directory. * 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 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`. * Then, look within the Custom Defined Repo for a file called `overlays.yml`.
* Finally, load the metadata file located at `https://somewhere.com/Overlays.yml` * Finally, load the collection file located at `https://somewhere.com/Overlays.yml`
## Playlist Files ## Playlist Files
@ -214,7 +214,7 @@ The [`playlist_files`](playlists.md) at the top level in your [Configuration Fil
## External Templates ## External Templates
The [`external_templates`](../builders/templates.md#external-templates) attribute is defined at the top level in your [Metadata File](../builders/details/metadata.md). The [`external_templates`](../builders/templates.md#external-templates) attribute is defined at the top level in your [Collection File](../data/collections.md).
??? example ??? example
@ -231,11 +231,11 @@ The [`external_templates`](../builders/templates.md#external-templates) attribut
Within the above example, PMM will: Within the above example, PMM will:
* First, look within the root of the PMM directory (also known as `config/`) for a metadata file named `templates.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list. * 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 metadata files within that directory. * 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 metadata file located at `https://somewhere.com/templates.yml`. * 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). * 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).

@ -1,8 +1,8 @@
# Playlist Files Attributes # Playlist Files Attributes
As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](../metadata/playlist.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](data/playlists.md) to work.
Within the [Config File](configuration.md, the `playlist_files` attribute specifies the [path type](paths.md) and path of the [Playlist Files](../metadata/playlist.md) that the user wants Plex Meta Manager to act on. Within the [Config File](configuration.md, the `playlist_files` attribute specifies the [path type](paths.md) and path of the [Playlist Files](data/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 [Config File](configuration.md.**
@ -19,7 +19,7 @@ This example is an advanced version of the playlist mappings with accompanying l
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
- pmm: imdb - pmm: imdb
- pmm: studio - pmm: studio
@ -29,11 +29,11 @@ libraries:
mass_critic_rating_update: tmdb mass_critic_rating_update: tmdb
split_duplicates: true split_duplicates: true
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV Shows.yml - file: config/TV Shows.yml
- pmm: tmdb - pmm: tmdb
- pmm: network - pmm: network
overlay_path: overlay_files:
- remove_overlays: false - remove_overlays: false
- file: config/Overlays.yml - file: config/Overlays.yml
playlist_files: playlist_files:

@ -27,9 +27,9 @@ plex:
| `token` | Plex Server Authentication Token | N/A | &#9989; | | `token` | Plex Server Authentication Token | N/A | &#9989; |
| `timeout` | Plex Server Timeout | 60 | &#10060; | | `timeout` | Plex Server Timeout | 60 | &#10060; |
| `db_cache` | Plex Server Database Cache Size | None | &#10060; | | `db_cache` | Plex Server Database Cache Size | None | &#10060; |
| `clean_bundles` | Runs Clean Bundles on the Server after all Metadata Files are run | false | &#10060; | | `clean_bundles` | Runs Clean Bundles on the Server after all Collection Files are run | false | &#10060; |
| `empty_trash` | Runs Empty Trash on the Server after all Metadata Files are run | false | &#10060; | | `empty_trash` | Runs Empty Trash on the Server after all Collection Files are run | false | &#10060; |
| `optimize` | Runs Optimize on the Server after all Metadata Files are run | false | &#10060; | | `optimize` | Runs Optimize on the Server after all Collection Files are run | false | &#10060; |
???+ warning ???+ warning
@ -42,16 +42,16 @@ This script can be run on a remote Plex server, but be sure that the `url` provi
# Multi-Plex Instance Setup: # 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 Metadata 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 ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
Movies_on_Second_Plex: Movies_on_Second_Plex:
library_name: Movies library_name: Movies
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
plex: plex:
url: http://plex.boing.bong url: http://plex.boing.bong

@ -89,24 +89,24 @@ In this example we have two Radarr instances, standard and 4K, and four librarie
``` ```
libraries: libraries:
Library01: # this library uses the default radarr config Library01: # this library uses the default radarr config
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
Library02: # this library overrides radarr root path and profile Library02: # this library overrides radarr root path and profile
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
radarr: radarr:
root_folder_path: /data/media/movies/tony root_folder_path: /data/media/movies/tony
quality_profile: Better quality_profile: Better
Library03: # this library overrides radarr quality profile Library03: # this library overrides radarr quality profile
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
radarr: radarr:
quality_profile: Best quality_profile: Best
Library04: # this library uses the 4K radarr instance Library04: # this library uses the 4K radarr instance
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
radarr: radarr:
url: https://radarr-4k.bing.bang url: https://radarr-4k.bing.bang
@ -115,7 +115,7 @@ libraries:
quality_profile: Bestest quality_profile: Bestest
Library05: # movies get added by a custom script so they should get added to radarr-4k Library05: # movies get added by a custom script so they should get added to radarr-4k
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
radarr: radarr:
url: https://radarr-4k.bing.bang url: https://radarr-4k.bing.bang

@ -100,16 +100,16 @@ libraries:
- operations - operations
- overlays - overlays
minimum_items: 3 #(2)! minimum_items: 3 #(2)!
metadata_path: collection_files:
# stuff here # stuff here
overlay_path: overlay_files:
# stuff here # stuff here
operations: operations:
# stuff here # stuff here
TV Shows: TV Shows:
metadata_path: collection_files:
# stuff here # stuff here
overlay_path: overlay_files:
# stuff here # stuff here
operations: operations:
# stuff here # stuff here
@ -193,8 +193,8 @@ Whilst searching for assets, if an asset folder cannot be found within the `asse
Asset Searches can happen in a number of ways. Asset Searches can happen in a number of ways.
* Any Collection specified under the `collections` header in a Metadata File. * Any Collection specified under the `collections` header in a Collection File.
* Any Item specified under the `metadata` header in a Metadata File. * Any Item specified under the `metadata` header in a Collection File.
* Any Playlist specified under the `playlists` header in a Playlist File. * Any Playlist specified under the `playlists` header in a Playlist File.
* Any Item in a library that is running the `assets_for_all` Library Operation. * Any Item in a library that is running the `assets_for_all` Library Operation.
* Any Item that has an Overlay applied to it. * Any Item that has an Overlay applied to it.
@ -393,8 +393,7 @@ While `show_missing` is true items missing from collections will be displayed.
## Only Filter Missing ## Only Filter Missing
Only items missing from a collection will be filtered. **Only specific filters can filter missing. See [Filters](../metadata/filters.md) for more information.** Only items missing from a collection will be filtered. **Only specific filters can filter missing. See [Filters](../builders/filters.md) for more information.**
???+ note ???+ note
this can be used to filter which missing media items get sent to Sonarr/Radarr this can be used to filter which missing media items get sent to Sonarr/Radarr
@ -514,11 +513,11 @@ Set `playlist_report` to true to print out a playlist report at the end of the l
## Run Order ## Run Order
Specify the run order of the library components [Library Operations, Metadata Files and Overlay Files] Specify the run order of the library components [Library Operations, Collection Files and Overlay Files]
???+ tip ???+ tip
If not specified, the default run order is Library Operations, then Metadata Files, then Overlay Files If not specified, the default run order is Library Operations, then Collection Files, then Overlay Files
```yml ```yml
settings: settings:
@ -536,7 +535,7 @@ Specify the run order of the library components [Library Operations, Metadata Fi
## Custom Repo ## Custom Repo
Specify where the `repo` attribute's base is when defining `metadata_path`, `playlist_file` and `overlay_path`. Specify where the `repo` attribute's base is when defining `collection_files`, `playlist_file` and `overlay_files`.
???+ note ???+ note

@ -97,24 +97,24 @@ In this example we have two Sonarr instances, standard and 4K, with five librari
``` ```
libraries: libraries:
Library01: # this library uses the default sonarr config Library01: # this library uses the default sonarr config
metadata_path: collection_files:
- file: config/TV.yml - file: config/TV.yml
Library02: # this library overrides sonarr root path and profile Library02: # this library overrides sonarr root path and profile
metadata_path: collection_files:
- file: config/TV.yml - file: config/TV.yml
sonarr: sonarr:
root_folder_path: /data/media/shows/tony root_folder_path: /data/media/shows/tony
quality_profile: Better quality_profile: Better
Library03: # this library overrides sonarr quality profile Library03: # this library overrides sonarr quality profile
metadata_path: collection_files:
- file: config/TV.yml - file: config/TV.yml
sonarr: sonarr:
quality_profile: Best quality_profile: Best
Library04: # this library uses the 4K sonarr instance Library04: # this library uses the 4K sonarr instance
metadata_path: collection_files:
- file: config/TV.yml - file: config/TV.yml
sonarr: sonarr:
url: https://sonarr-4k.bing.bang url: https://sonarr-4k.bing.bang
@ -123,7 +123,7 @@ libraries:
quality_profile: Bestest quality_profile: Bestest
Library05: # shows get added by a custom script so they should get added to sonarr-4k Library05: # shows get added by a custom script so they should get added to sonarr-4k
metadata_path: collection_files:
- file: config/TV.yml - file: config/TV.yml
sonarr: sonarr:
url: https://sonarr-4k.bing.bang url: https://sonarr-4k.bing.bang

@ -30,10 +30,10 @@ In this example we have a separate Tautulli instance for TV.
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- file: config/Movies.yml - file: config/Movies.yml
TV Shows: TV Shows:
metadata_path: collection_files:
- file: config/TV.yml - file: config/TV.yml
tautulli: tautulli:
url: http://192.168.1.14:8659 url: http://192.168.1.14:8659

@ -1,6 +1,6 @@
# British Academy of Film and Television Arts Awards Collections # British Academy of Film and Television Arts Awards Collections
The `bafta` Default Metadata 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) ![](../images/bafta.png)
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: bafta - pmm: bafta
``` ```
@ -66,7 +66,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: bafta - pmm: bafta
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Cannes Awards Collections # Cannes Awards Collections
The `cannes` Default Metadata File is used to create collections based on the Cannes Film Awards. The `cannes` Default Collection File is used to create collections based on the Cannes Film Awards.
![](../images/cannes.png) ![](../images/cannes.png)
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: cannes - pmm: cannes
``` ```
@ -66,7 +66,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: cannes - pmm: cannes
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Critics Choice Awards Collections # Critics Choice Awards Collections
The `choice` Default Metadata File is used to create collections based on the Critics Choice Awards. The `choice` Default Collection File is used to create collections based on the Critics Choice Awards.
![](../images/choice.png) ![](../images/choice.png)
@ -23,10 +23,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: choice - pmm: choice
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: choice - pmm: choice
``` ```
@ -68,7 +68,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: choice - pmm: choice
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Emmy Awards Collections # Emmy Awards Collections
The `emmy` Default Metadata File is used to create collections based on the Emmy Awards. The `emmy` Default Collection File is used to create collections based on the Emmy Awards.
![](../images/emmy.png) ![](../images/emmy.png)
@ -21,10 +21,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: emmy - pmm: emmy
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: emmy - pmm: emmy
``` ```
@ -66,7 +66,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: emmy - pmm: emmy
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Golden Globes Awards Collections # Golden Globes Awards Collections
The `golden` Default Metadata File is used to create collections based on the Golden Globe Awards. The `golden` Default Collection File is used to create collections based on the Golden Globe Awards.
![](../images/golden.png) ![](../images/golden.png)
@ -25,10 +25,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: golden - pmm: golden
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: golden - pmm: golden
``` ```
@ -70,7 +70,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: golden - pmm: golden
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Academy Awards (Oscars) Collections # Academy Awards (Oscars) Collections
The `oscars` Default Metadata File is used to create collections based on the Academy Awards (Oscars). The `oscars` Default Collection File is used to create collections based on the Academy Awards (Oscars).
![](../images/oscars.png) ![](../images/oscars.png)
@ -23,7 +23,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: oscars - pmm: oscars
``` ```
@ -65,7 +65,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: oscars - pmm: oscars
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Other Awards Collections # Other Awards Collections
The `other_award` Default Metadata File is used to create collections based on numerous other awards. The `other_award` Default Collection File is used to create collections based on numerous other awards.
![](../images/awardother.png) ![](../images/awardother.png)
@ -26,7 +26,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: other_award - pmm: other_award
``` ```
@ -62,7 +62,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: other_award - pmm: other_award
template_variables: template_variables:
use_berlinale: false #(1)! use_berlinale: false #(1)!

@ -1,6 +1,6 @@
# Award Separator Collections # Award Separator Collections
The `separator_award` Default Metadata File is used to create a seperator collection for Awards. The `separator_award` Default Collection File is used to create a seperator collection for Awards.
![](../images/awardseparator.png) ![](../images/awardseparator.png)
@ -21,10 +21,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: separator_award - pmm: separator_award
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: separator_award - pmm: separator_award
``` ```
@ -53,7 +53,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: separator_award - pmm: separator_award
template_variables: template_variables:
sep_style: purple #(1)! sep_style: purple #(1)!

@ -1,6 +1,6 @@
# Independent Spirit Awards Collections # Independent Spirit Awards Collections
The `spirit` Default Metadata File is used to create collections based on the Independent Spirit Awards. The `spirit` Default Collection File is used to create collections based on the Independent Spirit Awards.
![](../images/spirit.png) ![](../images/spirit.png)
@ -23,7 +23,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: spirit - pmm: spirit
``` ```
@ -65,7 +65,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: spirit - pmm: spirit
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Sundance Film Festival Awards Collections # Sundance Film Festival Awards Collections
The `sundance` Default Metadata File is used to create collections based on the Sundance Film Festival Awards. The `sundance` Default Collection File is used to create collections based on the Sundance Film Festival Awards.
![](../images/sundance.png) ![](../images/sundance.png)
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: sundance - pmm: sundance
``` ```
@ -66,7 +66,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: sundance - pmm: sundance
template_variables: template_variables:
collection_mode: show_items #(1)! collection_mode: show_items #(1)!

@ -1,6 +1,6 @@
# Actor Collections # Actor Collections
The `actor` Default Metadata File is used to dynamically create collections based on the most popular actors/actresses in your library. The `actor` Default Collection File is used to dynamically create collections based on the most popular actors/actresses in your library.
## Requirements & Recommendations ## Requirements & Recommendations
@ -24,10 +24,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: actor - pmm: actor
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: actor - pmm: actor
``` ```
@ -73,7 +73,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: actor - pmm: actor
template_variables: template_variables:
data: data:

@ -1,6 +1,6 @@
# Aspect Ratio Collections # Aspect Ratio Collections
The `aspect` Default Metadata File is used to create collections with items that are based on their aspect ratio. The `aspect` Default Collection File is used to create collections with items that are based on their aspect ratio.
![](../images/aspect.png) ![](../images/aspect.png)
@ -29,10 +29,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: aspect - pmm: aspect
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: aspect - pmm: aspect
``` ```
@ -75,7 +75,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: aspect - pmm: aspect
template_variables: template_variables:
use_1.65: false #(1)! use_1.65: false #(1)!

@ -1,6 +1,6 @@
# Audio Language Collections # Audio Language Collections
The `audio_language` Default Metadata File is used to dynamically create collections based on the audio languages available in your library. The `audio_language` Default Collection File is used to dynamically create collections based on the audio languages available in your library.
![](../images/audio_language.png) ![](../images/audio_language.png)
@ -23,10 +23,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: audio_language - pmm: audio_language
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: audio_language - pmm: audio_language
``` ```
@ -70,7 +70,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: audio_language - pmm: audio_language
template_variables: template_variables:
use_other: false #(1)! use_other: false #(1)!

@ -1,6 +1,6 @@
# Based On... Collections # Based On... Collections
The `based` Default Metadata File is used to create collections with items that are based on or inspired by various media outlets (such as Books or Video Games). The `based` Default Collection File is used to create collections with items that are based on or inspired by various media outlets (such as Books or Video Games).
![](../images/based.png) ![](../images/based.png)
@ -25,10 +25,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: based - pmm: based
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: based - pmm: based
``` ```
@ -67,7 +67,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: based - pmm: based
template_variables: template_variables:
sep_style: navy #(1)! sep_style: navy #(1)!

@ -1,6 +1,6 @@
# Collectionless Collection # Collectionless Collection
The `collectionless` Default Metadata 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](../../builders/plex.md#plex-collectionless) to help Show/Hide Movies/Shows properly in your library.
![](../images/collectionless.png) ![](../images/collectionless.png)
@ -8,7 +8,7 @@ The `collectionless` Default Metadata File is used to create a [Collectionless c
Supported Library Types: Movie, Show Supported Library Types: Movie, Show
Requirements: For this file to work it needs to run last under `metadata_path` and all other normal collections must use `collection_mode: hide_items` Requirements: For this file to work it needs to run last under `collection_files` and all other normal collections must use `collection_mode: hide_items`
## Collection ## Collection
@ -25,12 +25,12 @@ libraries:
Movies: Movies:
template_variables: template_variables:
collection_mode: hide_items collection_mode: hide_items
metadata_path: collection_files:
- pmm: collectionless - pmm: collectionless
TV Shows: TV Shows:
template_variables: template_variables:
collection_mode: hide_items collection_mode: hide_items
metadata_path: collection_files:
- pmm: collectionless - pmm: collectionless
``` ```
@ -61,7 +61,7 @@ libraries:
Movies: Movies:
template_variables: template_variables:
collection_mode: hide_items collection_mode: hide_items
metadata_path: collection_files:
- pmm: collectionless - pmm: collectionless
template_variables: template_variables:
exclude: exclude:

@ -1,6 +1,6 @@
# Common Sense Media Content Rating Collections # Common Sense Media Content Rating Collections
The `content_rating_cs` Default Metadata File is used to dynamically create collections based on the content ratings available in your library. The `content_rating_cs` Default Collection File is used to dynamically create collections based on the content ratings available in your library.
If you do not use the Common Sense-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system. If you do not use the Common Sense-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system.
@ -27,10 +27,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_cs - pmm: content_rating_cs
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: content_rating_cs - pmm: content_rating_cs
``` ```
@ -77,7 +77,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_cs - pmm: content_rating_cs
template_variables: template_variables:
sep_style: blue #(1)! sep_style: blue #(1)!

@ -1,6 +1,6 @@
# MAL Content Rating Collections # MAL Content Rating Collections
The `content_rating_mal` Default Metadata File is used to dynamically create collections based on the content ratings available in your library. The `content_rating_mal` Default Collection File is used to dynamically create collections based on the content ratings available in your library.
If you do not use the MAL-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system. If you do not use the MAL-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system.
@ -27,10 +27,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_mal - pmm: content_rating_mal
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: content_rating_mal - pmm: content_rating_mal
``` ```
@ -73,7 +73,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_mal - pmm: content_rating_mal
template_variables: template_variables:
sep_style: tan #(1)! sep_style: tan #(1)!

@ -1,6 +1,6 @@
# UK Content Rating Collections # UK Content Rating Collections
The `content_rating_uk` Default Metadata File is used to dynamically create collections based on the content ratings available in your library. The `content_rating_uk` Default Collection File is used to dynamically create collections based on the content ratings available in your library.
If you do not use the UK-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system. If you do not use the UK-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system.
@ -27,10 +27,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_uk - pmm: content_rating_uk
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: content_rating_uk - pmm: content_rating_uk
``` ```
@ -77,7 +77,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_cs - pmm: content_rating_cs
template_variables: template_variables:
sep_style: stb #(1)! sep_style: stb #(1)!

@ -1,6 +1,6 @@
# Genre Collections # Genre Collections
The `genre` Default Metadata File is used to dynamically create collections based on the genres available in your library. The `genre` Default Collection File is used to dynamically create collections based on the genres available in your library.
This file also merges similarly named genres (such as "Sci-Fi", "SciFi" and "Sci-Fi & Fantasy") into one ("Science Fiction") This file also merges similarly named genres (such as "Sci-Fi", "SciFi" and "Sci-Fi & Fantasy") into one ("Science Fiction")
@ -24,10 +24,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: genre - pmm: genre
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: genre - pmm: genre
``` ```
@ -71,7 +71,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: genre - pmm: genre
template_variables: template_variables:
sep_style: red #(1)! sep_style: red #(1)!

@ -1,6 +1,6 @@
# Resolution Collections # Resolution Collections
The `resolution` Default Metadata File is used to dynamically create collections based on the resolutions available in your library. The `resolution` Default Collection File is used to dynamically create collections based on the resolutions available in your library.
![](../images/resolution.png) ![](../images/resolution.png)
@ -30,10 +30,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: resolution - pmm: resolution
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: resolution - pmm: resolution
``` ```
@ -81,7 +81,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: resolution - pmm: resolution
template_variables: template_variables:
sep_style: green #(1)! sep_style: green #(1)!

@ -1,6 +1,6 @@
# Streaming Collections # Streaming Collections
The `streaming` Default Metadata File is used to dynamically create collections based on the streaming Services that your media is available on. The `streaming` Default Collection File is used to dynamically create collections based on the streaming Services that your media is available on.
![](../images/streaming.png) ![](../images/streaming.png)
@ -38,10 +38,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: streaming - pmm: streaming
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: streaming - pmm: streaming
``` ```
@ -98,7 +98,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: streaming - pmm: streaming
template_variables: template_variables:
region: fr #(1)! region: fr #(1)!

@ -1,6 +1,6 @@
# Studio Collections # Studio Collections
The `studio` Default Metadata File is used to dynamically create collections based on the studios available in your library. The `studio` Default Collection File is used to dynamically create collections based on the studios available in your library.
This file also merges similarly named studios (such as "20th Century Fox" and "20th Century Animation") into one ("20th Century Studios") This file also merges similarly named studios (such as "20th Century Fox" and "20th Century Animation") into one ("20th Century Studios")
@ -24,10 +24,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: studio - pmm: studio
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: studio - pmm: studio
``` ```
@ -74,7 +74,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: studio - pmm: studio
template_variables: template_variables:
append_include: append_include:

@ -1,6 +1,6 @@
# Subtitle Language Collections # Subtitle Language Collections
The `subtitle_language` Default Metadata File is used to dynamically create collections based on the subtitle languages available in your library. The `subtitle_language` Default Collection File is used to dynamically create collections based on the subtitle languages available in your library.
![](../images/subtitle_language.png) ![](../images/subtitle_language.png)
@ -23,10 +23,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: subtitle_language - pmm: subtitle_language
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: subtitle_language - pmm: subtitle_language
``` ```
@ -70,7 +70,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: subtitle_language - pmm: subtitle_language
template_variables: template_variables:
use_other: false #(1)! use_other: false #(1)!

@ -1,6 +1,6 @@
# Universe Collections # Universe Collections
The `universe` Default Metadata File is used to create collections based on popular Movie universes (such as the Marvel Cinematic Universe or Wizarding World). The `universe` Default Collection File is used to create collections based on popular Movie universes (such as the Marvel Cinematic Universe or Wizarding World).
![](../images/universe.png) ![](../images/universe.png)
@ -36,10 +36,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: universe - pmm: universe
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: universe - pmm: universe
``` ```
@ -85,7 +85,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: universe - pmm: universe
template_variables: template_variables:
sep_style: salmon #(1)! sep_style: salmon #(1)!

@ -1,6 +1,6 @@
# Year Collections # Year Collections
The `year` Default Metadata File is used to dynamically create collections based on the years available in your library, sorted by critic rating to create a "best of <year>" The `year` Default Collection File is used to dynamically create collections based on the years available in your library, sorted by critic rating to create a "best of <year>"
![](../images/year.png) ![](../images/year.png)
@ -22,10 +22,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: year - pmm: year
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: year - pmm: year
``` ```
@ -65,7 +65,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: year - pmm: year
template_variables: template_variables:
sep_style: purple #(1)! sep_style: purple #(1)!

@ -1,6 +1,6 @@
# Anilist Charts Collections # Anilist Charts Collections
The `anilist` Default Metadata File is used to create collections based on Anilist charts. The `anilist` Default Collection File is used to create collections based on Anilist charts.
![](../images/anilist.png) ![](../images/anilist.png)
@ -24,10 +24,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: anilist - pmm: anilist
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: anilist - pmm: anilist
``` ```
@ -64,7 +64,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: anilist - pmm: anilist
template_variables: template_variables:
use_season: false #(1)! use_season: false #(1)!

@ -1,6 +1,6 @@
# Basic Charts Collections # Basic Charts Collections
The `basic` Default Metadata File is used to create collections based on recently released media in your library. The `basic` Default Collection File is used to create collections based on recently released media in your library.
![](../images/basic.png) ![](../images/basic.png)
@ -22,10 +22,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: basic - pmm: basic
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: basic - pmm: basic
``` ```
@ -61,7 +61,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: basic - pmm: basic
template_variables: template_variables:
in_the_last_episodes: 14 #(1)! in_the_last_episodes: 14 #(1)!

@ -1,6 +1,6 @@
# FlixPatrol Charts Collections # FlixPatrol Charts Collections
The `flixpatrol` Default Metadata File is used to create collections based on FlixPatrol Charts. The `flixpatrol` Default Collection File is used to create collections based on FlixPatrol Charts.
![](../images/flixpatrol.png) ![](../images/flixpatrol.png)
@ -27,10 +27,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: flixpatrol - pmm: flixpatrol
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: flixpatrol - pmm: flixpatrol
``` ```
@ -71,7 +71,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: flixpatrol - pmm: flixpatrol
template_variables: template_variables:
location: united_states #(1)! location: united_states #(1)!

@ -1,6 +1,6 @@
# IMDb Charts Collections # IMDb Charts Collections
The `imdb` Default Metadata File is used to create collections based on IMDb Charts. The `imdb` Default Collection File is used to create collections based on IMDb Charts.
![](../images/imdb.png) ![](../images/imdb.png)
@ -25,10 +25,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: imdb - pmm: imdb
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: imdb - pmm: imdb
``` ```
@ -63,7 +63,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: imdb - pmm: imdb
template_variables: template_variables:
use_lowest: false #(1)! use_lowest: false #(1)!

@ -1,6 +1,6 @@
# MyAnimeList Charts Collections # MyAnimeList Charts Collections
The `myanimelist` Default Metadata File is used to create collections based on MyAnimeList Charts. The `myanimelist` Default Collection File is used to create collections based on MyAnimeList Charts.
![](../images/myanimelist.png) ![](../images/myanimelist.png)
@ -25,10 +25,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: myanimelist - pmm: myanimelist
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: myanimelist - pmm: myanimelist
``` ```
@ -65,7 +65,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: myanimelist - pmm: myanimelist
template_variables: template_variables:
use_season: false #(1)! use_season: false #(1)!

@ -1,6 +1,6 @@
# Other Charts Collections # Other Charts Collections
The `other_chart` Default Metadata File is used to create collections based on other Charts. The `other_chart` Default Collection File is used to create collections based on other Charts.
![](../images/chartother.png) ![](../images/chartother.png)
@ -26,10 +26,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: other_chart - pmm: other_chart
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: other_chart - pmm: other_chart
``` ```
@ -65,7 +65,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: other_chart - pmm: other_chart
template_variables: template_variables:
use_anidb: false #(1)! use_anidb: false #(1)!

@ -1,6 +1,6 @@
# Chart Separator Collections # Chart Separator Collections
The `separator_chart` Default Metadata File is used to create a seperator collection for Charts. The `separator_chart` Default Collection File is used to create a seperator collection for Charts.
![](../images/chartseparator.png) ![](../images/chartseparator.png)
@ -21,10 +21,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: separator_chart - pmm: separator_chart
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: separator_chart - pmm: separator_chart
``` ```
@ -53,7 +53,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: separator_chart - pmm: separator_chart
template_variables: template_variables:
sep_style: purple #(1)! sep_style: purple #(1)!

@ -1,6 +1,6 @@
# Tautulli Charts Collections # Tautulli Charts Collections
The `tautulli` Default Metadata File is used to create collections based on Tautulli/Plex Charts. The `tautulli` Default Collection File is used to create collections based on Tautulli/Plex Charts.
![](../images/tautulli.png) ![](../images/tautulli.png)
@ -24,10 +24,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: tautulli - pmm: tautulli
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: tautulli - pmm: tautulli
``` ```
@ -66,7 +66,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: tautulli - pmm: tautulli
template_variables: template_variables:
use_watched: false #(1)! use_watched: false #(1)!

@ -1,6 +1,6 @@
# TMDb Charts Collections # TMDb Charts Collections
The `tmdb` Default Metadata File is used to create collections based on TMDb Charts. The `tmdb` Default Collection File is used to create collections based on TMDb Charts.
![](../images/tmdb.png) ![](../images/tmdb.png)
@ -27,10 +27,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: tmdb - pmm: tmdb
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: tmdb - pmm: tmdb
``` ```
@ -67,7 +67,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: tmdb - pmm: tmdb
template_variables: template_variables:
use_trending: false #(1)! use_trending: false #(1)!

@ -1,6 +1,6 @@
# Trakt Charts Collections # Trakt Charts Collections
The `trakt` Default Metadata File is used to create collections based on Trakt Charts. The `trakt` Default Collection File is used to create collections based on Trakt Charts.
![](../images/trakt.png) ![](../images/trakt.png)
@ -28,10 +28,10 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: trakt - pmm: trakt
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: trakt - pmm: trakt
``` ```
@ -68,7 +68,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: trakt - pmm: trakt
template_variables: template_variables:
use_collected: false #(1)! use_collected: false #(1)!

@ -2,7 +2,7 @@
These files can generally be used on both Movie and Show library-types, or are part of a category of collection (such as Award Shows.) These files can generally be used on both Movie and Show library-types, or are part of a category of collection (such as Award Shows.)
These collections are applied by calling the below paths into the `metadata_path` section of your config.yml These collections are applied by calling the below paths into the `collection_files` section of your config.yml
### Award Collections ### Award Collections

@ -1,6 +1,6 @@
# Collection Defaults # Collection Defaults
There are many Default Metadata Files built into PMM itself which offer an easy-to-use and customizable set of Collections that the user can achieve without having to worry about creating the files that makes the collections possible. There are many Default Collection Files built into PMM itself which offer an easy-to-use and customizable set of Collections that the user can achieve without having to worry about creating the files that makes the collections possible.
This is the simplest way to create Collections using Plex Meta Manager. This is the simplest way to create Collections using Plex Meta Manager.
@ -11,12 +11,12 @@ This is the simplest way to create Collections using Plex Meta Manager.
## Configurations ## Configurations
To run a default pmm Metadata file you can simply add it to your `metadata_path` using `pmm` like so: To run a default pmm Metadata file you can simply add it to your `collection_files` using `pmm` like so:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: actor - pmm: actor
- pmm: genre - pmm: genre
``` ```
@ -43,14 +43,14 @@ libraries:
LIBRARYNAME: LIBRARYNAME:
template_variables: template_variables:
use_separator: false use_separator: false
metadata_path: collection_files:
- pmm: actor - pmm: actor
- pmm: genre - pmm: genre
``` ```
## Collection Section Order ## Collection Section Order
All Default Metadata Files have a `collection_section` attribute. These attributes determine the order of the various sections and can be set by [customizing your config](#customizing-configs). All Default Collection Files have a `collection_section` attribute. These attributes determine the order of the various sections and can be set by [customizing your config](#customizing-configs).
For example: `collection_section: 01` translates to `sort_title: "!<<collection_section>><<pre>><<order_<<key>>>><<sort>>"` and so for `genre` if you have a `Fantasy` collection, plex is going to show `!06_Fantasy` For example: `collection_section: 01` translates to `sort_title: "!<<collection_section>><<pre>><<order_<<key>>>><<sort>>"` and so for `genre` if you have a `Fantasy` collection, plex is going to show `!06_Fantasy`
@ -109,7 +109,7 @@ This example changes the ratings overlay to work on episodes.
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: imdb - pmm: imdb
template_variables: template_variables:
use_popular: false use_popular: false
@ -130,7 +130,7 @@ For example if you want yearly oscar collections that go back 10 years instead o
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: oscars - pmm: oscars
template_variables: template_variables:
radarr_add_missing: true radarr_add_missing: true
@ -144,7 +144,7 @@ Or maybe you want to change the number of actor collections made using pmm: acto
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: actor - pmm: actor
template_variables: template_variables:
collection_mode: hide collection_mode: hide
@ -158,7 +158,7 @@ Or maybe you want to change the collection sort order of the genre collections u
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: genre - pmm: genre
template_variables: template_variables:
collection_section: 11 collection_section: 11
@ -171,7 +171,7 @@ libraries:
LIBRARYNAME: LIBRARYNAME:
template_variables: template_variables:
use_separator: false use_separator: false
metadata_path: collection_files:
- ... - ...
``` ```
@ -180,7 +180,7 @@ Alternatively it can be turned off individually per git file:
```yaml ```yaml
libraries: libraries:
LIBRARYNAME: LIBRARYNAME:
metadata_path: collection_files:
- pmm: <file1> # separator is disabled - pmm: <file1> # separator is disabled
template_variables: template_variables:
use_separator: false use_separator: false

@ -11,7 +11,7 @@ libraries:
sep_style: purple # use the purple separators globally for this library sep_style: purple # use the purple separators globally for this library
collection_mode: hide # hide the collections within the "library" tab in Plex. collection_mode: hide # hide the collections within the "library" tab in Plex.
placeholder_imdb_id: tt8579674 # 1917 (2019) placeholder id for the separators, avoids a plex bug. placeholder_imdb_id: tt8579674 # 1917 (2019) placeholder id for the separators, avoids a plex bug.
metadata_path: collection_files:
- pmm: separator_award # An "index card" - pmm: separator_award # An "index card"
- pmm: bafta # BAFTA Awards - pmm: bafta # BAFTA Awards
template_variables: # Show collections from current_year-10 onwards. template_variables: # Show collections from current_year-10 onwards.
@ -46,7 +46,7 @@ libraries:
template_variables: template_variables:
originals_only: true # Only create collections for Original Content (i.e. Netflix Originals) originals_only: true # Only create collections for Original Content (i.e. Netflix Originals)
- pmm: universe # Marvel Cinematic Universe, Wizarding World, etc. - pmm: universe # Marvel Cinematic Universe, Wizarding World, etc.
overlay_path: overlay_files:
- remove_overlays: false # Set to true if you want to remove overlays - remove_overlays: false # Set to true if you want to remove overlays
# - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat # - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat
# - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat
@ -69,7 +69,7 @@ libraries:
sep_style: plum # use the plum separators globally for this library sep_style: plum # use the plum separators globally for this library
collection_mode: hide # hide the collections within the "library" tab in Plex. collection_mode: hide # hide the collections within the "library" tab in Plex.
placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators, avoids a plex bug. placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators, avoids a plex bug.
metadata_path: collection_files:
- pmm: separator_award # An "index card" - pmm: separator_award # An "index card"
- pmm: bafta # BAFTA Awards - pmm: bafta # BAFTA Awards
template_variables: # Show collections from current_year-10 onwards. template_variables: # Show collections from current_year-10 onwards.
@ -97,7 +97,7 @@ libraries:
- pmm: streaming # Streaming on Disney+, Netflix, etc. - pmm: streaming # Streaming on Disney+, Netflix, etc.
template_variables: template_variables:
originals_only: true # Only create collections for Original Content (i.e. Netflix Originals) originals_only: true # Only create collections for Original Content (i.e. Netflix Originals)
overlay_path: overlay_files:
- remove_overlays: false # Set to true if you want to remove overlays - remove_overlays: false # Set to true if you want to remove overlays
# - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat # - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat
# - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat

@ -1,6 +1,6 @@
# List of Defaults Files # List of Defaults Files
The below table outlines the available Defaults files which can be called via `metadata_path` (for Collections), `overlay_path` (for Overlays) and `playlist_files` (for Playlists). The below table outlines the available Defaults files which can be called via `collection_files` (for Collections), `overlay_files` (for Overlays) and `playlist_files` (for Playlists).
{% {%
include-markdown "./collection_list.md" include-markdown "./collection_list.md"

@ -1,6 +1,6 @@
# Defaults Usage Guide # Defaults Usage Guide
Plex Meta Manager includes a pre-created set of Metadata Files and Overlay Files which can be found in the "defaults" folder in the root of your Plex Meta Manager installation directory. Plex Meta Manager includes a pre-created set of Collection Files and Overlay Files which can be found in the "defaults" folder in the root of your Plex Meta Manager installation directory.
These files offer an easy-to-use and customizable set of Collections and Overlays that the user can achieve without having to worry about creating the files that make the collections and overlays possible. These files offer an easy-to-use and customizable set of Collections and Overlays that the user can achieve without having to worry about creating the files that make the collections and overlays possible.
@ -22,15 +22,15 @@ See the [Overlay Defaults](overlays.md) Page for more information on the specifi
## Configurations ## Configurations
To run a default pmm Metadata or Overlay file you can simply add it to your `metadata_path` (For Metadata Files) or `overlay_path` (For Overlay Files) using `pmm` like so: To run a default pmm Metadata or Overlay file you can simply add it to your `collection_files` (For Collection Files) or `overlay_files` (For Overlay Files) using `pmm` like so:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: actor - pmm: actor
- pmm: genre - pmm: genre
overlay_path: overlay_files:
- pmm: ribbon - pmm: ribbon
- pmm: ratings - pmm: ratings
``` ```
@ -44,7 +44,7 @@ This example changes the ratings overlay to work on episodes.
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
metadata_path: collection_files:
- pmm: imdb - pmm: imdb
template_variables: template_variables:
use_popular: false use_popular: false
@ -52,7 +52,7 @@ libraries:
visible_library_top: true visible_library_top: true
visible_home_top: true visible_home_top: true
visible_shared_top: true visible_shared_top: true
overlay_path: overlay_files:
- pmm: ratings - pmm: ratings
template_variables: template_variables:
builder_level: episode builder_level: episode

@ -1,6 +1,6 @@
# US Content Rating Collections # US Content Rating Collections
The `content_rating_us` Default Metadata File is used to dynamically create collections based on the content ratings available in your library. The `content_rating_us` Default Collection File is used to dynamically create collections based on the content ratings available in your library.
If you do not use the US-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system. If you do not use the US-based rating system within Plex, this file will attempt to match the ratings in your library to the respective rating system.
@ -29,7 +29,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_us - pmm: content_rating_us
``` ```
@ -75,7 +75,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: content_rating_us - pmm: content_rating_us
template_variables: template_variables:
sep_style: blue #(1)! sep_style: blue #(1)!

@ -1,6 +1,6 @@
# Continent Collections # Continent Collections
The `continent` Default Metadata File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into seven continents. The `continent` Default Collection File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into seven continents.
**This file has a Show Library [Counterpart](../show/continent.md).** **This file has a Show Library [Counterpart](../show/continent.md).**
@ -25,7 +25,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: continent - pmm: continent
``` ```
@ -78,7 +78,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: continent - pmm: continent
template_variables: template_variables:
use_other: false #(1)! use_other: false #(1)!

@ -1,6 +1,6 @@
# Country Collections # Country Collections
The `country` Default Metadata File is used to dynamically create collections based on the countries available in your library. The `country` Default Collection File is used to dynamically create collections based on the countries available in your library.
**This file has a Show Library [Counterpart](../show/country.md).** **This file has a Show Library [Counterpart](../show/country.md).**
@ -25,7 +25,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: country - pmm: country
``` ```
@ -78,7 +78,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: country - pmm: country
template_variables: template_variables:
use_other: false #(1)! use_other: false #(1)!

@ -1,6 +1,6 @@
# Decade Collections # Decade Collections
The `decade` Default Metadata File is used to dynamically create collections based on the decades available in your library, sorted by critic rating to create a "best of <decade>" The `decade` Default Collection File is used to dynamically create collections based on the decades available in your library, sorted by critic rating to create a "best of <decade>"
**This file works has a Show Library [Counterpart](../show/decade.md).** **This file works has a Show Library [Counterpart](../show/decade.md).**
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: decade - pmm: decade
``` ```
@ -64,7 +64,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: year - pmm: year
template_variables: template_variables:
sep_style: purple #(1)! sep_style: purple #(1)!

@ -1,6 +1,6 @@
# Director Collections # Director Collections
The `director` Default Metadata File is used to dynamically create collections based on the most popular directors in your library. The `director` Default Collection File is used to dynamically create collections based on the most popular directors in your library.
## Requirements & Recommendations ## Requirements & Recommendations
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: director - pmm: director
``` ```
@ -69,7 +69,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: director - pmm: director
template_variables: template_variables:
data: data:

@ -1,8 +1,8 @@
# Franchise Collections # Franchise Collections
The `franchise` Default Metadata File is used to create collections based on popular Movie franchises, and can be used as a replacement to the TMDb Collections that Plex creates out-of-the-box. The `franchise` Default Collection File is used to create collections based on popular Movie franchises, and can be used as a replacement to the TMDb Collections that Plex creates out-of-the-box.
Unlike most Default Metadata Files, Franchise works by placing collections inline with the main library items if your library allows it. For example, the "Iron Man" franchise collection will appear next to the "Iron Man" movies within your library. Unlike most Default Collection Files, Franchise works by placing collections inline with the main library items if your library allows it. For example, the "Iron Man" franchise collection will appear next to the "Iron Man" movies within your library.
**This file has a Show Library [Counterpart](../show/franchise.md).** **This file has a Show Library [Counterpart](../show/franchise.md).**
@ -25,7 +25,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: franchise - pmm: franchise
``` ```
@ -87,7 +87,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: franchise - pmm: franchise
template_variables: template_variables:
build_collection: false #(1)! build_collection: false #(1)!

@ -1,6 +1,6 @@
# Producer Collections # Producer Collections
The `producer` Default Metadata File is used to dynamically create collections based on the most popular producers in your library. The `producer` Default Collection File is used to dynamically create collections based on the most popular producers in your library.
## Requirements & Recommendations ## Requirements & Recommendations
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: producer - pmm: producer
``` ```
@ -69,7 +69,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: producer - pmm: producer
template_variables: template_variables:
data: data:

@ -1,6 +1,6 @@
# Region Collections # Region Collections
The `region` Default Metadata File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into 39 countries or collections of countries. Some care has been taken to ensure all countries are included, and the groupings won't fit well with everyone's collections. Western and Southern Europe, Oceania, and North America could be useful groupings for those libraries with more of an Asian focus, for instance. Please see the comments in the yml below where a decision point might be seen as controversial. You are welcome to edit this to fit your own audience's needs. The `region` Default Collection File is used to dynamically create collections based on the countries within your library. The collection aims to be inclusive, with all 230 countries incorporated into 39 countries or collections of countries. Some care has been taken to ensure all countries are included, and the groupings won't fit well with everyone's collections. Western and Southern Europe, Oceania, and North America could be useful groupings for those libraries with more of an Asian focus, for instance. Please see the comments in the yml below where a decision point might be seen as controversial. You are welcome to edit this to fit your own audience's needs.
**This file has a Show Library [Counterpart](../show/region.md).** **This file has a Show Library [Counterpart](../show/region.md).**
@ -25,7 +25,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: region - pmm: region
``` ```
@ -78,7 +78,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: region - pmm: region
template_variables: template_variables:
use_other: false #(1)! use_other: false #(1)!

@ -1,6 +1,6 @@
# Seasonal Collections # Seasonal Collections
The `seasonal` Default Metadata File is used to dynamically create seasonal collections based on holidays . The `seasonal` Default Collection File is used to dynamically create seasonal collections based on holidays .
![](../images/seasonal.png) ![](../images/seasonal.png)
@ -40,7 +40,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: seasonal - pmm: seasonal
``` ```
@ -93,7 +93,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: seasonal - pmm: seasonal
template_variables: template_variables:
use_independence: false #(1)! use_independence: false #(1)!

@ -1,6 +1,6 @@
# Writer Collections # Writer Collections
The `writer` Default Metadata File is used to dynamically create collections based on the most popular writers in your library. The `writer` Default Collection File is used to dynamically create collections based on the most popular writers in your library.
## Requirements & Recommendations ## Requirements & Recommendations
@ -24,7 +24,7 @@ The below YAML in your config.yml will create the collections:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: writer - pmm: writer
``` ```
@ -72,7 +72,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
metadata_path: collection_files:
- pmm: writer - pmm: writer
template_variables: template_variables:
data: data:

@ -6,7 +6,7 @@ It should be noted that when an overlay has &#10071; for a season or episode, it
In the scenario where there is missing data such as age ratings for episodes, then generally the highest-level data available will be applied at the lower level (i.e. a Show's CommonSense age rating would apply to all episodes). In the scenario where there is missing data such as age ratings for episodes, then generally the highest-level data available will be applied at the lower level (i.e. a Show's CommonSense age rating would apply to all episodes).
These overlays are applied by calling the below paths into the `overlay_path` [section](../config/libraries.md#overlay-path) of your config.yml These overlays are applied by calling the below paths into the `overlay_files` [section](../config/libraries.md#overlay-path) of your config.yml
### Chart Overlays ### Chart Overlays

@ -10,12 +10,12 @@ This is the simplest way to create Overlays using Plex Meta Manager.
## Configurations ## Configurations
To run a default pmm Overlay file you can simply add it to your `overlay_path` using `pmm` like so: To run a default pmm Overlay file you can simply add it to your `overlay_files` using `pmm` like so:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: ribbon - pmm: ribbon
- pmm: ratings - pmm: ratings
``` ```
@ -33,7 +33,7 @@ libraries:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- remove_overlays: false - remove_overlays: false
- pmm: resolution # 1, 4 - pmm: resolution # 1, 4
- pmm: audio_codec # 2 - pmm: audio_codec # 2
@ -78,7 +78,7 @@ libraries:
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- remove_overlays: false - remove_overlays: false
- pmm: resolution # 1 - pmm: resolution # 1
- pmm: audio_codec # 2 - pmm: audio_codec # 2
@ -120,7 +120,7 @@ libraries:
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- remove_overlays: false - remove_overlays: false
- pmm: resolution # 1 - pmm: resolution # 1
template_variables: template_variables:
@ -145,7 +145,7 @@ libraries:
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- remove_overlays: false - remove_overlays: false
- pmm: resolution # 1 - pmm: resolution # 1
template_variables: template_variables:
@ -204,7 +204,7 @@ To be able to insert the ratings you want, Plex Meta Manager operations need to
![](images/ratings_operations.png) ![](images/ratings_operations.png)
Finally, to show the ratings on the poster, the following was added to the `overlay_path` section in the `config.yml` file to post Rotten Tomatoes Critics Ratings in (`#1`), IMDb ratings in (`#2`), and TMDb ratings in (`#3`) Finally, to show the ratings on the poster, the following was added to the `overlay_files` section in the `config.yml` file to post Rotten Tomatoes Critics Ratings in (`#1`), IMDb ratings in (`#2`), and TMDb ratings in (`#3`)
![](images/ratings_overlay_path.png) ![](images/ratings_overlay_path.png)
@ -217,7 +217,7 @@ This example changes the ratings overlay to work on episodes.
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: ratings - pmm: ratings
template_variables: template_variables:
builder_level: episode builder_level: episode

@ -28,10 +28,10 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: aspect - pmm: aspect
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: aspect - pmm: aspect
- pmm: aspect - pmm: aspect
template_variables: template_variables:
@ -73,13 +73,13 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: aspect - pmm: aspect
template_variables: template_variables:
text_1.33: "4:9" text_1.33: "4:9"
text_1.77: "16:9" text_1.77: "16:9"
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: aspect - pmm: aspect
template_variables: template_variables:
text_1.33: "4:9" text_1.33: "4:9"

@ -44,10 +44,10 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: audio_codec - pmm: audio_codec
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: audio_codec - pmm: audio_codec
- pmm: audio_codec - pmm: audio_codec
template_variables: template_variables:
@ -89,7 +89,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: audio_codec - pmm: audio_codec
template_variables: template_variables:
use_opus: false use_opus: false

@ -41,10 +41,10 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: commonsense - pmm: commonsense
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: commonsense - pmm: commonsense
- pmm: commonsense - pmm: commonsense
template_variables: template_variables:
@ -87,7 +87,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: commonsense - pmm: commonsense
template_variables: template_variables:
pre_text: "CS" pre_text: "CS"

@ -30,10 +30,10 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: content_rating_uk - pmm: content_rating_uk
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: content_rating_uk - pmm: content_rating_uk
- pmm: content_rating_uk - pmm: content_rating_uk
template_variables: template_variables:
@ -77,7 +77,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: content_rating_uk - pmm: content_rating_uk
template_variables: template_variables:
color: false color: false

@ -28,7 +28,7 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: content_rating_us_movie - pmm: content_rating_us_movie
``` ```
@ -62,7 +62,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: content_rating_us_movie - pmm: content_rating_us_movie
template_variables: template_variables:
color: false color: false

@ -28,7 +28,7 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: content_rating_us_show - pmm: content_rating_us_show
- pmm: content_rating_us_show - pmm: content_rating_us_show
template_variables: template_variables:
@ -68,7 +68,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: content_rating_us_show - pmm: content_rating_us_show
template_variables: template_variables:
color: false color: false

@ -15,10 +15,10 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: direct_play - pmm: direct_play
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: direct_play - pmm: direct_play
``` ```
@ -53,7 +53,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
Movies: Movies:
overlay_path: overlay_files:
- pmm: direct_play - pmm: direct_play
template_variables: template_variables:
builder_level: episode builder_level: episode

@ -15,7 +15,7 @@ The below YAML in your config.yml will create the overlays:
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: episode_info - pmm: episode_info
``` ```
@ -49,7 +49,7 @@ The below is an example config.yml extract with some Template Variables added in
```yaml ```yaml
libraries: libraries:
TV Shows: TV Shows:
overlay_path: overlay_files:
- pmm: episode_info - pmm: episode_info
template_variables: template_variables:
font_color: "#FFFFFF99" font_color: "#FFFFFF99"

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

Loading…
Cancel
Save