@ -54,6 +54,16 @@ Search in assets for images for every item in your library.
**Values:** `true` or `false`
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
assets_for_all: false
```
## Delete Collections
Deletes collections based on a set of given attributes. The Collection must match all set attributes to be deleted.
@ -68,18 +78,19 @@ Deletes collections based on a set of given attributes. The Collection must matc
| `configured` | **Values:**<br>`true`: Collection must be a Configured Collection to be deleted (collection is in the config file of the specific PMM run)<br>`false`: Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run).<br>**The collection does not need to be scheduled to be considered configured and only needs to be in the config file.** |
| `less` | Collection must contain less then the given number of items to be deleted.<br>**Values:** Number greater than 0 |
**Example:**
???+ example
Removes all Managed Collections (Collections with the `PMM` Label) that are not configured in the Current Run.
Removes all Managed Collections (Collections with the `PMM` Label) that are not configured in the Current Run.
```yaml
library:
Movies:
operations:
delete_collections:
configured: false
managed: true
```
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
delete_collections:
configured: false
managed: true
```
## Mass Genre Update
@ -108,6 +119,17 @@ Updates every item's genres in the library to the chosen site's genres.
| `remove` | Remove all Genres and Lock Field |
| `reset` | Remove all Genres and Unlock Field |
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
mass_genre_update: imdb
```
## Mass Content Rating Update
Updates every item's content rating in the library to the chosen site's content rating.
@ -128,6 +150,16 @@ Updates every item's content rating in the library to the chosen site's content
| `remove` | Remove Content Rating and Lock Field |
| `reset` | Remove Content Rating and Unlock Field |
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
mass_content_rating_update: omdb
```
## Mass Original Title Update
Updates every item's original title in the library to the chosen site's original title.
@ -148,6 +180,16 @@ Updates every item's original title in the library to the chosen site's original
| `remove` | Remove Original Title and Lock Field |
| `reset` | Remove Original Title and Unlock Field |
???+ example
```yaml
libraries:
Anime:
# Metadata and Overlay files here
operations:
mass_original_title_update: anidb_official
```
## Mass Studio Update
Updates every item's studio in the library to the chosen site's studio.
@ -166,6 +208,16 @@ Updates every item's studio in the library to the chosen site's studio.
| `remove` | Remove Original Title and Lock Field |
| `reset` | Remove Original Title and Unlock Field |
???+ example
```yaml
libraries:
Anime:
# Metadata and Overlay files here
operations:
mass_studio_update: mal
```
## Mass Originally Available Update
Updates every item's originally available date in the library to the chosen site's date.
@ -187,6 +239,16 @@ Updates every item's originally available date in the library to the chosen site
| `remove` | Remove Originally Available and Lock Field |
| `reset` | Remove Originally Available and Unlock Field |
???+ example
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_originally_available_update: tvdb
```
## Mass * Rating Update
Updates every item's audience/critic/user rating in the library to the chosen site's rating.
@ -225,10 +287,25 @@ Updates every item's audience/critic/user rating in the library to the chosen si
| `remove` | Remove Rating and Lock Field |
| `reset` | Remove Rating and Unlock Field |
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
mass_audience_rating_update: mdb_average
mass_critic_rating_update: mdb_metacritic
mass_user_rating_update: imdb
```
## Mass Episode * Rating Update
Updates every item's episode's audience/critic/user rating in the library to the chosen site's rating.
???+ warning "Important Note"
This does not affect the icons displayed in the Plex UI. This will place the number of your choice in the relevant field in the Plex database. In other words, if Plex is configured to use Rotten Tomatoes ratings, then no matter what happens with this mass rating update operation, the icons in the Plex UI will remain Rotten Tomatoes. The human who decided to put TMDB ratings in the critic slot and Letterboxd ratings in the audience slot is the only party who knows that the ratings are no longer Rotten Tomatoes. One primary use of this feature is to put ratings overlays on posters. More information on what PMM can do with these ratings can be found [here](../pmm/install/guides/ratings.md).
@ -242,6 +319,17 @@ Updates every item's episode's audience/critic/user rating in the library to the
| `remove` | Remove Rating and Lock Field |
| `reset` | Remove Rating and Unlock Field |
???+ example
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_episode_audience_rating_update: tmdb
mass_episode_critic_rating_update: remove
mass_episode_user_rating_update: imdb
```
## Mass Poster Update
Updates every item's poster to the chosen sites poster. Will fallback to `plex` if the given option fails. Assets will be used over anything else.
@ -250,7 +338,6 @@ Updates every item's poster to the chosen sites poster. Will fallback to `plex`
When used in combination with Overlays, this could cause PMM to reset the poster and then reapply all overlays on each run, which will result in [image bloat](../pmm/essentials/scripts/image-cleanup.md).
**Attribute:** `mass_poster_update`
**Values:** There are a few different options to determine how the `mass_poster_update` works.
@ -261,17 +348,18 @@ Updates every item's poster to the chosen sites poster. Will fallback to `plex`
| `seasons` | Update season posters while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
| `episodes` | Update episode posters while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
**Example:**
???+ example
```yaml
library:
TV Shows:
operations:
mass_poster_update:
source: tmdb
seasons: false
episodes: false
```
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_poster_update:
source: tmdb
seasons: false
episodes: false
```
## Mass Background Update
@ -291,17 +379,18 @@ Updates every item's background to the chosen sites background. Will fallback to
| `seasons` | Update season backgrounds while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
| `episodes` | Update episode backgrounds while updating shows<br>**Default:** `true`<br>**Values:** `true` or `false` |
**Example:**
???+ example
```yaml
library:
TV Shows:
operations:
mass_background_update:
source: tmdb
seasons: false
episodes: false
```
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_background_update:
source: tmdb
seasons: false
episodes: false
```
## Mass IMDb Parental Labels
@ -318,6 +407,16 @@ Updates every item's labels in the library to match the IMDb Parental Guide.
| `moderate` | Apply all Parental Labels with a value of `Moderate` or `Severe` |
| `severe` | Apply all Parental Labels with a value of `Severe` |
???+ example
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_imdb_parental_labels: severe
```
## Mass Collection Mode
Updates every Collection in your library to the specified Collection Mode.
@ -333,6 +432,16 @@ Updates every Collection in your library to the specified Collection Mode.
| `hide_items` | Hide Items in this Collection |
| `show_items` | Show this Collection and its Items |
???+ example
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
mass_collection_mode: hide
```
## Update Blank Track Titles
Search though every track in a music library and replace any blank track titles with the tracks sort title.
@ -341,6 +450,16 @@ Search though every track in a music library and replace any blank track titles
**Values:** `true` or `false`
???+ example
```yaml
libraries:
Music:
# Metadata and Overlay files here
operations:
update_blank_track_titles: true
```
## Remove Title Parentheses
Search through every title and remove all ending parentheses in an items title if the title is not locked.
@ -349,6 +468,16 @@ Search through every title and remove all ending parentheses in an items title i
**Values:** `true` or `false`
???+ example
```yaml
libraries:
Music:
# Metadata and Overlay files here
operations:
remove_title_parentheses: true
```
## Split Duplicates
Splits all duplicate movies/shows found in this library.
@ -357,6 +486,16 @@ Splits all duplicate movies/shows found in this library.
**Values:** `true` or `false`
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
split_duplicates: true
```
## Radarr Add All
Adds every item in the library to Radarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Radarr paths you can use the `plex_path` and `radarr_path` [Radarr](radarr.md) details to convert the paths.
@ -365,6 +504,16 @@ Adds every item in the library to Radarr. The existing paths in plex will be use
**Values:** `true` or `false`
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
radarr_add_all: true
```
## Radarr Remove By Tag
Removes every item from Radarr with the Tags given.
@ -373,6 +522,16 @@ Removes every item from Radarr with the Tags given.
**Values:** List or comma separated string of tags
???+ example
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
radarr_remove_by_tag: mytag1, mytag2
```
## Sonarr Add All
Adds every item in the library to Sonarr. The existing paths in plex will be used as the root folder of each item, if the paths in Plex are not the same as your Sonarr paths you can use the `plex_path` and `sonarr_path` [Sonarr](sonarr.md) details to convert the paths.
@ -381,6 +540,16 @@ Adds every item in the library to Sonarr. The existing paths in plex will be use
**Values:** `true` or `false`
???+ example
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
sonarr_add_all: true
```
## Sonarr Remove By Tag
Removes every item from Sonarr with the Tags given.
@ -389,6 +558,16 @@ Removes every item from Sonarr with the Tags given.
**Values:** List or comma separated string of tags
???+ example
```yaml
libraries:
TV Shows:
# Metadata and Overlay files here
operations:
sonarr_remove_by_tag: mytag1, mytag2
```
## Genre Mapper
Maps genres in your library to be changed to other genres.
@ -400,31 +579,35 @@ Maps genres in your library to be changed to other genres.
* The key (`Action/Adventure, Action & Adventure` in the example below) is what genres you want mapped to the value.
* The value (`Action` in the example below) is what the genres will end up as.
So this example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and `Romantic Comedy` to `Comedy`.
???+ example
```yaml
library:
Movies:
operations:
genre_mapper:
"Action/Adventure": Action
"Action & Adventure": Action
Romantic Comedy: Comedy
```
This example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and `Romantic Comedy` to `Comedy`.
To just Remove a Genre without replacing it just set the Genre to nothing like this.
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
genre_mapper:
"Action/Adventure": Action
"Action & Adventure": Action
Romantic Comedy: Comedy
```
```yaml
library:
Movies:
operations:
genre_mapper:
"Action/Adventure": Action
"Action & Adventure": Action
Romantic Comedy:
```
To just Remove a Genre without replacing it just set the Genre to nothing like this.
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
genre_mapper:
"Action/Adventure": Action
"Action & Adventure": Action
Romantic Comedy:
```
This example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and remove every instance of the Genre `Romantic Comedy`.
The above example will change go through every item in your library and change the genre `Action/Adventure` or `Action & Adventure` to `Action` and remove every instance of the Genre `Romantic Comedy`.
## Content Rating Mapper
@ -437,31 +620,35 @@ Maps content ratings in your library to be changed to other content ratings.
* The key (`PG`, `PG-13` in the example below) is what content ratings you want mapped to the value.
* The value (`Y-10` in the example below) is what the content ratings will end up as.
So this example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and `R` to `Y-17`.
???+ example
```yaml
library:
Movies:
operations:
content_rating_mapper:
PG: Y-10
"PG-13": Y-10
R: Y-17
```
To just Remove a content rating without replacing it just set the content rating to nothing like this.
```yaml
library:
Movies:
operations:
content_rating_mapper:
PG: Y-10
"PG-13": Y-10
R:
```
This example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and remove every instance of the content rating `R`.
This example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and `R` to `Y-17`.
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
content_rating_mapper:
PG: Y-10
"PG-13": Y-10
R: Y-17
```
To just Remove a content rating without replacing it just set the content rating to nothing like this.
```yaml
libraries:
Movies:
# Metadata and Overlay files here
operations:
content_rating_mapper:
PG: Y-10
"PG-13": Y-10
R:
```
The above example will change go through every item in your library and change the content rating `PG` or `PG-13` to `Y-10` and remove every instance of the content rating `R`.
## Metadata Backup
@ -480,14 +667,15 @@ If you point to an existing Metadata File then PMM will Sync the changes to the
| `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` |
The below in an extract of the `config.yml.template` and is the initial values that are set if you follow any of the installation guides.
???+ tip
We suggest users review each of these settings and amend as necessary, these are just default values to get you started.
~~~yaml
{%
include-markdown "./config.yml.template"
comments=false
start="settings:"
end="webhooks:"
%}
~~~
## Cache
Cache the Plex GUID and associated IDs for each library item for faster subsequent processing. The cache file is created in the same directory as the configuration file.
@ -19,6 +19,31 @@ These are the attributes which can be used within the Metadata File:
* One of `metadata`, `collections` or `dynamic_collections` must be present for the Metadata File to execute.
* Example Metadata Files can be found in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM)
## Example
This example is a Metadata file with a basic collection which is saved in a file called `MyCollections.yml` within the location mapped as `config` in my setup.
???+ example "Example "MyCollections.yml"""
```yaml
collections: # this must appear once and **only once** in any Metadata file
Top 50 Grossing Films of All Time (Worldwide):
tmdb_list: 10 # https://www.themoviedb.org/list/10 also accepted
collection_order: custom
sync_mode: sync
```
This file would then be defined in my `config.yml` file as a `metadata_path` item:
???+ example "config.yml Example Metadata Path Addition"
```yaml
libraries:
Movies: # this must match the name of a library in your Plex server
metadata_path:
- file: config/MyCollections.yml
```
## Collection Attributes
Plex Meta Manager can run a number of different operations within `collections` and such as:
@ -4,6 +4,44 @@ Overlay files are used to create and maintain overlays within the Plex libraries
Overlays and templates are defined within one or more Overlay files, which are linked to libraries in the [Libraries Attribute](../config/libraries.md#overlay-path) within the [Configuration File](../config/configuration.md).
## Example
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.
???+ example "Example "MyOverlays.yml"""
This will add an overlay with text that says "Direct Play" to any item which has a 4K resolution in my library. It will be located at the bottom of the poster in the center.
```yaml
overlays:
directplay:
overlay:
name: text(Direct Play)
horizontal_offset: 0
horizontal_align: center
vertical_offset: 150
vertical_align: bottom
font_size: 63
font_color: "#FFFFFF"
back_color: "#00000099"
back_radius: 30
plex_search:
all:
resolution: 4K
```
This file would then be defined in my `config.yml` file as a `overlay_path` item:
???+ example "config.yml Example Overlay Path Addition"
```yaml
libraries:
Movies: # this must match the name of a library in your Plex server
overlay_path:
- remove_overlays: false
- file: config/MyOverlays.yml
```
All overlay coordinates assume 1000 x 1500 for Posters and 1920 x 1080 for Backgrounds and Title Cards.
**To remove all overlays add `remove_overlays: true` to the `overlay_path` [Libraries Attribute](../config/libraries.md#remove-overlays).**
@ -10,6 +10,46 @@ If utilized to their fullest, these files can be used to maintain the entire ser
You can use the [`playlist_report` setting](../config/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"""
This will add an overlay with text that says "Direct Play" to any item which has a 4K resolution in my library. It will be located at the bottom of the poster in the center.
```yaml
playlists:
Marvel Cinematic Universe Chronological Order:
sync_mode: sync
libraries: Movies, TV Shows # these libraries must exist in your Plex server
summary: Marvel Cinematic Universe In Chronological Order
```
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"
```yaml
libraries:
Movies:
# Metadata and Overlay files here
TV Shows:
# Metadata and Overlay files here
playlist_files:
- file: config/MyPlaylists.yml
```
## 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 |
@ -22,9 +62,6 @@ These are the attributes which can be utilized within 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)
## Playlist Attributes
Plex Meta Manager can automatically build and update playlists defined within the `playlists` attribute.
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.
@ -55,7 +92,7 @@ There are multiple types of attributes that can be utilized within a playlist:
* 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
## 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: