Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other third-party services via API.
Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other third-party services via API.
By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file within `/config/config.yml`
By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`.
A template Configuration File can be found in the [GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template).
A template Configuration File can be found in the [GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template).
@ -25,7 +25,7 @@ This table outlines the third-party services that Plex Meta Manager can make use
| [`trakt`](trakt) | ❌ |
| [`trakt`](trakt) | ❌ |
| [`mal`](myanimelist) | ❌ |
| [`mal`](myanimelist) | ❌ |
# Configuration File Walkthrough
## Configuration File Example
This example outlines what a "standard" config.yml file might look like when in use.
This example outlines what a "standard" config.yml file might look like when in use.
@ -34,38 +34,38 @@ This example outlines what a "standard" config.yml file might look like when in
<br/>
<br/>
```yaml
```yaml
libraries: # This is called out once within the config.yml file
libraries: # This is called out once within the config.yml file
Movies: # Each library must match the Plex library name
Movies: # Each library must match the Plex library name
metadata_path:
metadata_path:
- file: config/Movies.yml # This is a local file on the system
- file: config/Movies.yml # This is a local file on the system
- folder: config/Movies/ # This is a local directory on the system
- folder: config/Movies/ # This is a local directory on the system
- pmm: basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: basic # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
- pmm: imdb # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: imdb # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
overlay_path:
overlay_path:
- remove_overlays: false # Set this to true to remove all overlays
- remove_overlays: false # Set this to true to remove all overlays
- file: config/Overlays.yml # This is a local file on the system
- file: config/Overlays.yml # This is a local file on the system
- pmm: ribbon # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: ribbon # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
TV Shows:
TV Shows:
metadata_path:
metadata_path:
- file: config/TVShows.yml
- file: config/TVShows.yml
- folder: config/TV Shows/
- folder: config/TV Shows/
- pmm: basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: basic # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
- pmm: imdb # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: imdb # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
overlay_path:
overlay_path:
- remove_overlays: false # Set this to true to remove all overlays
- remove_overlays: false # Set this to true to remove all overlays
- file: config/Overlays.yml # This is a local file on the system
- file: config/Overlays.yml # This is a local file on the system
- pmm: ribbon # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: ribbon # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
Anime:
Anime:
metadata_path:
metadata_path:
- file: config/Anime.yml
- file: config/Anime.yml
- pmm: basic # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: basic # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
- pmm: anilist # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: anilist # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
Music:
Music:
metadata_path:
metadata_path:
- file: config/Music.yml
- file: config/Music.yml
playlist_files:
playlist_files:
- file: config/playlists.yml
- file: config/playlists.yml
- pmm: playlist # This is a file within the https://github.com/meisnate12/Plex-Meta-Manager-Configs Repository
- pmm: playlist # This is a local PMM Default file. Usage Guide: https://metamanager.wiki/en/nightly/defaults/guide.html
settings:
settings:
cache: true
cache: true
cache_expiration: 60
cache_expiration: 60
@ -178,83 +178,3 @@ mal:
**Expand the above to see the full config.yml file before continuing.**
**Expand the above to see the full config.yml file before continuing.**
<br/>
<br/>
## Library Mappings (`libraries:`)
`libraries:` is used to tell PMM that the following code relates to Plex libraries. `libraries:` should only be seen once within the configuration file.
In this specific example there are four Plex libraries that are being connected to: `Movies - 4K`, `TV Shows`, `Animé` and `Music`. These names **must** match the name of the library as it appears within Plex, including any special characters such as the é within `Animé`.
Using `Movies - 4K:` as an example, `metadata_path:` instructs PMM that the next piece of code is where to look for the [Metadata Files](../../metadata/metadata) which will be covered in the next section.
As can be seen in the original config.yml example, there are three metadata_paths being pointed to for the TV Shows library:
```yaml
TV Shows:
metadata_path:
- file: config/TVShows.yml
- folder: config/TV Shows/
- pmm: basic
- pmm: imdb
```
These path types are outlined as follows:
* `- file:` refers to a YAML file which is located within the system that PMM is being run from.
* `- folder:` refers to a directory containing YAML files which is located within the system that PMM is being run from.
* `- git:` refers to a YAML file which is hosted on the [GitHub Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) unless the user has specified a custom repository within the settings section of the config.yml file.
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.
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and then load any metadata/YAML files within that directory.
* After that, look at the [PMM/chart folder](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM/chart) within the GitHub Configs Repo for a file called `basic.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/PMM/basic.yml).
* Finally, look at the [PMM/chart folder](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM/chart) within the GitHub Configs Repo for a file called `imdb.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/PMM/imdb.yml).
It should be noted that whilst the user should be able to edit any metadata files which are `- file:` or `- folder:` based, they have little to no control over `- git:` metadata files **unless a copy of the YAML file is downloaded and ran locally**. In the above example, if the user downloaded the [basic.yml file](https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/pmm: basic.yml) from the [GitHub Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs) and placed it in the root directory of PMM (`config/`), then the metadata_path mapping would be updated to reflect this as follows:
```yaml
TV Shows:
metadata_path:
- file: config/TVShows.yml
- folder: config/TV Shows/
- file: pmm: basic # <------HERE
- pmm: imdb
```
## Playlists (`playlist_files:` mappings)
Playlists can be seen as an extension of Libraries in that they are both handled very similarly within PMM:
```yaml
playlist_files:
- file: config/playlists.yml
- pmm: playlists
```
As with `libraries:`, YAML files are defined to create the Playlists. It should be noted that whilst in `libraries:` when working with `playlist_files:` you call out the libraries being connected to within the Metadata/YAML file as Playlists can combine media from multiple libraries. You can view an example playlists.yml file as follows:
As can be seen in the above examples, multiple libraries are being used to combine different types of media (movies and tv shows in this case) into one playlist.
Within the [Configuration File](configuration), the `libraries:` attribute specifies the Plex libraries that the user wants Plex Meta Manager to act on.
Within the [Configuration File](configuration), the `libraries` attribute specifies the Plex libraries that the user wants Plex Meta Manager to act on.
Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or "execute the following Collection Definition files". These attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority.
Attributes are used to instruct Plex Meta Manager what actions to take, such as "load the following libraries" or "execute the following Collection Definition files". These attributes can be specified individually per library, or can be inherited from the global value if it has been set. If an attribute is specified at both the library and global level, then the library level attribute will take priority.
@ -78,20 +78,20 @@ radarr:
The available attributes for each library are as follows:
The available attributes for each library are as follows:
| [`library_name`](#library-name) | Library name (required only when trying to use multiple libraries with the same name) | Base Attribute Name | ❌ |
| [`library_name`](#library-name) | Library name (required only when trying to use multiple libraries with the same name) | Base Attribute Name | ❌ |
| [`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` | ❌ |
| [`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` | ❌ |
| [`template_variables`](#template-variables) | Library template variables to be applied to every Metadata and Overlay file run. | N/A | ❌ |
| [`template_variables`](#library-template-variables) | Library template variables to be applied to every Metadata and Overlay file run. | N/A | ❌ |
| [`schedule`](../metadata/details/schedule) | Use any [schedule option](../metadata/details/schedule) to control when this library is run. | daily | ❌ |
| [`schedule`](../metadata/details/schedule) | Use any [schedule option](../metadata/details/schedule) to control when this library is run. | daily | ❌ |
| [`operations`](operations) | Library Operations to run | N/A | ❌ |
| [`operations`](operations) | Library Operations to run | N/A | ❌ |
| [`settings`](settings) | Any `setting` attribute that overrides a global value | global | ❌ |
| [`settings`](settings) | Any `setting` attribute that overrides a global value | global | ❌ |
| [`plex`](plex) | Any `plex` attribute that overrides a global value | global | ✅ Either here or globally |
| [`plex`](plex) | Any `plex` attribute that overrides a global value | global | ✅ Either here or globally |
| [`radarr`](radarr) | Any `radarr` attribute that overrides a global value | global | ❌ |
| [`radarr`](radarr) | Any `radarr` attribute that overrides a global value | global | ❌ |
| [`sonarr`](sonarr) | Any `sonarr` attribute that overrides a global value | global | ❌ |
| [`sonarr`](sonarr) | Any `sonarr` attribute that overrides a global value | global | ❌ |
| [`tautulli`](tautulli) | Any `tautulli` attribute that overrides a global value | global | ❌ |
| [`tautulli`](tautulli) | Any `tautulli` attribute that overrides a global value | global | ❌ |
### Library Name
### Library Name
@ -242,15 +242,3 @@ libraries:
template_variables:
template_variables:
collection_mode: hide_items
collection_mode: hide_items
```
```
## Playlist Files Attribute
As playlists are not tied to one specific library and can combine media from multiple libraries, they require their own special [Playlist Files](../metadata/metadata) to work.
You can define Playlist Files by using `playlist_files` mapper by specifying the path type and path of the files that will be executed. See [Path Types](paths) for how to define them.
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) to work.
Within the [Config File](configuration), the `playlist_files` attribute specifies the [path type](paths) and path of the [Playlist Files](../metadata/playlist) 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).**
```yaml
playlist_files:
- file: config/playlists.yml
- pmm: playlist
```
### Example
This example is an advanced version of the playlist mappings with accompanying library mappings:
@ -11,7 +11,7 @@ This is the simplest way to create Collections using Plex Meta Manager.
## Configurations
## Configurations
To run a default pmm 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 `metadata_path` using `pmm` like so:
```yaml
```yaml
libraries:
libraries:
@ -97,31 +97,6 @@ This is the default PMM collection ordering:
| `producer` | `19` |
| `producer` | `19` |
| `writer` | `20` |
| `writer` | `20` |
## Rating Overlays
By default for Movies in Plex, the `Ratings Source` dropdown (`#3`) below, can come from Rotten Tomatoes (and includes Critic Ratings and Audience Ratings) or IMDb (Audience Ratings). This only changes the tiny icons displayed and where Plex will retrieve the ratings from upon initial scan and import of the media metadata.
**Plex Meta Manager can insert up to three ratings of your choice into the three spots regardless of what you choose in the `Advanced` tab of that Plex library**
![](images/ratings_source.png)
Plex has three available spots in the Plex DB to store ratings and thus Plex Meta Manager can be used to insert ratings sources of your choice into those spots. They are known as the User Rating (`#1`), Critic Rating (`#2`), and Audience Rating (`#3`).
**Note that the little icons cannot be changed and that the numbers next to the little icons are reflected in the poster ratings overlay**
![](images/ratings_spot.png)
To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb.
**mass_*_rating_update** sources can be found here: [operations](../../config/operations)
![](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`)
![](images/ratings_overlay_path.png)
## Customizing Configs
## Customizing Configs
Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs.
Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs.
@ -131,43 +106,21 @@ This example changes the ratings overlay to work on episodes.
```yaml
```yaml
libraries:
libraries:
TV Shows:
TV Shows:
overlay_path:
metadata_path:
- pmm: ratings
- pmm: imdb
template_variables:
template_variables:
overlay_level: episode
use_popular: false
use_lowest: false
visible_library_top: true
visible_home_top: true
visible_shared_top: true
```
```
Each file has a comment block at the top showing the available `template_variables` for each file. For example the [`pmm: genre`](https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/PMM/genre.yml) has this:
Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: genre` has a page [here](both/genre).
```yaml
**In addition to the defined `template_variables` almost all default Metadata files have access to the [Shared Variables](variables).**
Each of these when passed will change how the collection runs slightly.
* `use_separator` Turn the [Separator Collection](../separators) on/off
* `sort_by` Sets how the collection is sorted
* `collection_mode` Sets the collection mode of the collection
* `collection_section` Sets the value at the start of the sort title
**In addition to the defined `template_variables` each file in the PMM Folder has access to the `radarr_add_missing` and `sonarr_add_missing` template variables and for dynamic collections most attributes can be passed as template variables**
### Examples
For example if you want yearly oscar collections that go back 10 years instead of 5 all of which gets sent to radarr use the `data` and `radarr_add_missing` template variables.
For example if you want yearly oscar collections that go back 10 years instead of 5 all of which gets sent to radarr use the `data` and `radarr_add_missing` template variables.
@ -175,12 +128,12 @@ For example if you want yearly oscar collections that go back 10 years instead o
libraries:
libraries:
Movies:
Movies:
metadata_path:
metadata_path:
- pmm: oscars
- pmm: oscars
template_variables:
template_variables:
radarr_add_missing: true
radarr_add_missing: true
data:
data:
starting: current_year-10
starting: current_year-10
ending: current_year
ending: current_year
```
```
Or maybe you want to change the number of actor collections made using pmm: actor.
Or maybe you want to change the number of actor collections made using pmm: actor.
@ -189,12 +142,12 @@ Or maybe you want to change the number of actor collections made using pmm: acto
libraries:
libraries:
Movies:
Movies:
overlay_path:
overlay_path:
- pmm: actor
- pmm: actor
template_variables:
template_variables:
collection_mode: hide
collection_mode: hide
data:
data:
depth: 5
depth: 5
limit: 50
limit: 50
```
```
Or maybe you want to change the collection sort order of the genre collections using pmm: genre.
Or maybe you want to change the collection sort order of the genre collections using pmm: genre.
@ -203,9 +156,9 @@ Or maybe you want to change the collection sort order of the genre collections u
libraries:
libraries:
Movies:
Movies:
metadata_path:
metadata_path:
- pmm: genre
- pmm: genre
template_variables:
template_variables:
collection_section: 11
collection_section: 11
```
```
Or maybe you want to disable separators globally per library.
Or maybe you want to disable separators globally per library.
@ -216,6 +169,7 @@ libraries:
template_variables:
template_variables:
use_separator: false
use_separator: false
metadata_path:
metadata_path:
- ...
```
```
Alternatively it can be turned off individually per git file:
Alternatively it can be turned off individually per git file:
@ -233,9 +187,5 @@ libraries:
use_separator: false
use_separator: false
```
```
## Errors
If there are collections being made that have configuration errors or missing posters please either bring it up in our Discord or raise an Issue on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs/issues/new/choose).
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 Metadata 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 makes 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.
All Collections come with a matching poster to make a clean, consistent set of collections in your library. These files are stored in the [Plex Meta Manager Images](https://github.com/meisnate12/Plex-Meta-Manager-Images) Repository and each poster is downloaded straight to your Plex Collection when you run Plex Meta Manager.
All Collections come with a matching poster to make a clean, consistent set of collections in your library. These files are stored in the [Plex Meta Manager Images](https://github.com/meisnate12/Plex-Meta-Manager-Images) Repository and each poster is downloaded straight to your Plex Collection when you run Plex Meta Manager.
It should be noted that users running the on [nightly branch](https://metamanager.wiki/en/nightly/home/kb.html#how-do-i-switch-to-the-nightly-branch) of Plex Meta Manager will receive all updates to the PMM Defaults as soon as they are published via [GitHub](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM), which may at times involve bugs or implementations that need to be further addressed. Users of the [develop](https://metamanager.wiki/en/nightly/home/kb.html#how-do-i-switch-to-the-develop-branch) and [master](https://metamanager.wiki/en/nightly/home/kb.html#how-do-i-switch-back-to-the-master-branch) branches will only receive updated Defaults files when an update to Plex Meta Manager is released - this helps to protect to keep these branches stable and prevent bugs from reaching the wider user-base.
Credits to Sohjiro, Bullmoose20, Yozora, Cpt Kuesel, and anon_fawkes for helping drive this entire Default Set of Configs through the concept, design and implementation.
Credits to Bullmoose20 and Yozora for helping drive this entire Default Set of Configs through the concept, design and implementation.
Special thanks to Magic815 for the overlay image inspiration and base template.
Special thanks to Magic815 for the overlay image inspiration and base template.
Please consider [donating](https://github.com/sponsors/meisnate12) towards the project.
Please consider [donating](https://github.com/sponsors/meisnate12) towards the project.
## Collection Defaults
See the [Collection Defaults](defaults) Page for more information on the specifics of the Collection Defaults.
## Overlay Defaults
See the [Overlay Defaults](overlays/defaults) Page for more information on the specifics of the Overlay Defaults.
## Configurations
## Configurations
To run a file in git you can simply add it to your `metadata_path` (For Metadata Files) or `overlay_path` (For Overlay Files) using `git` like so:
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:
```yaml
```yaml
libraries:
libraries:
@ -26,264 +31,10 @@ libraries:
- pmm: actor
- pmm: actor
- pmm: genre
- pmm: genre
overlay_path:
overlay_path:
- remove_overlays: false
- pmm: ribbon
- pmm: ribbon
- pmm: ratings
- pmm: ratings
```
```
## Overlays
The default set of overlays are a combination of Positional Overlays and Text Overlays.
### Example Poster Overlays
![](images/movie-overlays1-annotated.png)
![](images/movie-overlays2-annotated.png)
<details>
<summary>Click to expand sample config.yml Movies overlays section:</summary>
```yaml
libraries:
Movies:
overlay_path:
- remove_overlays: false
- reapply_overlay: true
- pmm: resolution # 1
- pmm: audio_codec # 2
- pmm: mediastinger # 3
- pmm: special_release # 4
- pmm: ratings # 5, 6, 7
template_variables:
rating1: user # 5 as this is user and mass_user_rating_update: mdb_tomatoes
rating1_image: rt_tomato # 5 as this is user and mass_user_rating_update: mdb_tomatoes
rating1_font: config/custom_fonts/Adlib.ttf # 5 local font accessible to PMM
rating1_font_size: 63 # 5 adjusted font size to fit rating
rating2: critic # 6 as this is critic and mass_critic_rating_update: imdb
rating2_image: imdb # 6 as this is critic and mass_critic_rating_update: imdb
rating2_font: config/custom_fonts/Impact.ttf # 6 local font accessible to PMM
rating2_font_size: 70 # 6 adjusted font size to fit rating
rating3: audience # 7 as this is audience and mass_audience_rating_update: tmdb
rating3_image: tmdb # 7 as this is audience and mass_audience_rating_update: tmdb
rating3_font: config/custom_fonts/Avenir_95_Black.ttf # 7 local font accessible to PMM
rating3_font_size: 70 # 7 adjusted font size to fit rating
horizontal_position: right # the set of ratings is on the right of the poster
- pmm: streaming # 8
- pmm: video_format # 9
- pmm: audio_language # 10
- pmm: ribbon # 11, 12 Bottom right sash is used by more than one overlay so a weight for priority can be applied
operations:
mass_user_rating_update: mdb_tomatoes # 5 This operation will update the user rating in plex with Rotten Tomatoes ratings information
mass_critic_rating_update: imdb # 6 This operation will update the critic rating in plex with IMDb ratings information
mass_audience_rating_update: tmdb # 7 This operation will update the audience rating in plex with TMDb ratings information
```
</details>
### Example TV Shows - Show Overlays
![](images/tvshow-poster-annotated.png)
<details>
<summary>Click to expand sample config.yml TV Shows overlays section for the Show Poster:</summary>
```yaml
libraries:
TV Shows:
overlay_path:
- remove_overlays: false
- reapply_overlay: true
- pmm: resolution # 1
- pmm: audio_codec # 2
- pmm: mediastinger # 3
- pmm: ratings # 4, 5, 6
template_variables:
rating1: user # 4 as this is user and mass_user_rating_update: mdb_tomatoes
rating1_image: rt_tomato # 4 as this is user and mass_user_rating_update: mdb_tomatoes
rating1_font: config/custom_fonts/Adlib.ttf # 4 local font accessible to PMM
rating1_font_size: 63 # 4 adjusted font size to fit rating
rating2: critic # 5 as this is critic and mass_critic_rating_update: imdb
rating2_image: imdb # 5 as this is critic and mass_critic_rating_update: imdb
rating2_font: config/custom_fonts/Impact.ttf # 5 local font accessible to PMM
rating2_font_size: 70 # 5 adjusted font size to fit rating
rating3: audience # 6 as this is audience and mass_audience_rating_update: tmdb
rating3_image: tmdb # 6 as this is audience and mass_audience_rating_update: tmdb
rating3_font: config/custom_fonts/Avenir_95_Black.ttf # 6 local font accessible to PMM
rating3_font_size: 70 # 6 adjusted font size to fit rating
horizontal_position: right # the set of ratings is on the right of the poster
- pmm: streaming # 7
- pmm: video_format # 8
- pmm: ribbon # 10, 11 Bottom right sash is used by more than one overlay so a weight for priority can be applied
operations:
mass_user_rating_update: mdb_tomatoes # 4 This operation will update the user rating in plex with Rotten Tomatoes ratings information
mass_critic_rating_update: imdb # 5 This operation will update the critic rating in plex with IMDb ratings information
mass_audience_rating_update: tmdb # 6 This operation will update the audience rating in plex with TMDb ratings information
```
</details>
### Example TV Shows - Season Overlays
![](images/tvshow-poster-season-annotated.png)
<details>
<summary>Click to expand sample config.yml TV Shows overlays section for the Season Poster:</summary>
```yaml
libraries:
TV Shows:
overlay_path:
- remove_overlays: false
- reapply_overlay: true
- pmm: resolution # 1
template_variables:
overlay_level: season
- pmm: audio_codec # 2
template_variables:
overlay_level: season
- pmm: video_format # 3
template_variables:
overlay_level: season
```
</details>
### Example TV Shows - Episode Overlays
![](images/tvshow-poster-episode-annotated.png)
<details>
<summary>Click to expand sample config.yml TV Shows overlays section for the Episode Poster:</summary>
```yaml
libraries:
TV Shows:
overlay_path:
- remove_overlays: false
- reapply_overlay: true
- pmm: resolution # 1
template_variables:
overlay_level: episode
- pmm: audio_codec # 2
template_variables:
overlay_level: episode
- pmm: ratings # 3, 4
template_variables:
rating1: critic # 3 as this is critic and mass_critic_rating_update: imdb
rating1_image: imdb # 3 as this is critic and mass_critic_rating_update: imdb
rating1_font: config/custom_fonts/Impact.ttf # 3 local font accessible to PMM
rating1_font_size: 70 # 3 adjusted font size to fit rating
rating2: audience # 4 as this is audience and mass_audience_rating_update: tmdb
rating2_image: tmdb # 4 as this is audience and mass_audience_rating_update: tmdb
rating2_font: config/custom_fonts/Avenir_95_Black.ttf # 4 local font accessible to PMM
rating2_font_size: 70 # 4 adjusted font size to fit rating
horizontal_position: right # the set of ratings is on the right of the poster
overlay_level: episode
- pmm: video_format # 5
template_variables:
overlay_level: episode
- pmm: episode_info # 6
template_variables:
overlay_level: episode
- pmm: runtimes # 7
template_variables:
overlay_level: episode
operations:
mass_episode_critic_rating_update: imdb # 3 This operation will update the episodes critic rating in plex with IMDb ratings information
mass_episode_audience_rating_update: tmdb # 4 This operation will update the episodes audience rating in plex with TMDb ratings information
```
</details>
## Separators
By default, most metadata files use separators to denote different sections of collection like actor collections vs studio collections.
<details>
<summary>Click to expand to see an example of Separators.</summary>
![](images/separators.jpg)
</details>
* Can be turned off by [customizing your config](#customizing-configs)
## Collection Section Order
Almost every default metadata file has 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.yml` if you have a `Fantasy` collection, plex is going to show `!06_Fantasy`
By default for Movies in Plex, the `Ratings Source` dropdown (`#3`) below, can come from Rotten Tomatoes (and includes Critic Ratings and Audience Ratings) or IMDb (Audience Ratings). This only changes the tiny icons displayed and where Plex will retrieve the ratings from upon initial scan and import of the media metadata.
**Plex Meta Manager can insert up to three ratings of your choice into the three spots regardless of what you choose in the `Advanced` tab of that Plex library**
![](images/ratings_source.png)
Plex has three available spots in the Plex DB to store ratings and thus Plex Meta Manager can be used to insert ratings sources of your choice into those spots. They are known as the User Rating (`#1`), Critic Rating (`#2`), and Audience Rating (`#3`).
**Note that the little icons cannot be changed and that the numbers next to the little icons are reflected in the poster ratings overlay**
![](images/ratings_spot.png)
To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb.
**mass_*_rating_update** sources can be found here: [operations](../../config/operations)
![](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`)
![](images/ratings_overlay_path.png)
## Customizing Configs
## Customizing Configs
Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs.
Configs can be customized using the `template_variables` attribute when calling the file. These `template_variables` will be given to every template call in the file which allows them to affect how that file runs.
@ -293,111 +44,23 @@ This example changes the ratings overlay to work on episodes.
```yaml
```yaml
libraries:
libraries:
TV Shows:
TV Shows:
overlay_path:
- pmm: ratings
template_variables:
overlay_level: episode
```
Each file has a comment block at the top showing the available `template_variables` for each file. For example the [`pmm: genre`](https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/PMM/genre.yml) has this:
Each of these when passed will change how the collection runs slightly.
* `use_separator` Turn the [Separator Collection](../separators) on/off
* `sort_by` Sets how the collection is sorted
* `collection_mode` Sets the collection mode of the collection
* `collection_section` Sets the value at the start of the sort title
**In addition to the defined `template_variables` each file in the PMM Folder has access to the `radarr_add_missing` and `sonarr_add_missing` template variables and for dynamic collections most attributes can be passed as template variables**
For example if you want yearly oscar collections that go back 10 years instead of 5 all of which gets sent to radarr use the `data` and `radarr_add_missing` template variables.
```yaml
libraries:
Movies:
metadata_path:
metadata_path:
- pmm: oscars
- pmm: imdb
template_variables:
radarr_add_missing: true
data:
starting: current_year-10
ending: current_year
```
Or maybe you want to change the number of actor collections made using pmm: actor.
```yaml
libraries:
Movies:
overlay_path:
- pmm: actor
template_variables:
collection_mode: hide
data:
depth: 5
limit: 50
```
Or maybe you want to change the collection sort order of the genre collections using pmm: genre.
```yaml
libraries:
Movies:
metadata_path:
- pmm: genre
template_variables:
collection_section: 11
```
Or maybe you want to disable separators globally per library.
```yaml
libraries:
LIBRARYNAME:
template_variables:
use_separator: false
metadata_path:
```
Alternatively it can be turned off individually per git file:
```yaml
libraries:
LIBRARYNAME:
metadata_path:
- pmm: <file1> # separator is disabled
template_variables:
template_variables:
use_separator: false
use_popular: false
- pmm: <file2> # separator is enabled by default
use_lowest: false
- pmm: <file3> # separator is disabled
visible_library_top: true
visible_home_top: true
visible_shared_top: true
overlay_path:
- pmm: ratings
template_variables:
template_variables:
use_separator: false
overlay_level: episode
```
```
## Errors
Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](overlays/ratings).
If there are collections being made that have configuration errors or missing posters please either bring it up in our Discord or raise an Issue on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs/issues/new/choose).
**In addition to the defined `template_variables` almost all default Metadata and Overlay files have access to their respective [Metadata](variables)/[Overlay](overlays/variables) Shared Variables.**
<summary>Click to expand sample config.yml TV Shows overlays section for the Episode Poster:</summary>
<summary>Click to expand sample config.yml TV Shows overlays section for the Episode Poster:</summary>
@ -148,38 +149,38 @@ libraries:
libraries:
libraries:
TV Shows:
TV Shows:
overlay_path:
overlay_path:
- remove_overlays: false
- remove_overlays: false
- reapply_overlay: true
- reapply_overlay: true
- pmm: resolution # 1
- pmm: resolution # 1
template_variables:
template_variables:
overlay_level: episode
overlay_level: episode
- pmm: audio_codec # 2
- pmm: audio_codec # 2
template_variables:
template_variables:
overlay_level: episode
overlay_level: episode
- pmm: ratings # 3, 4
- pmm: ratings # 3, 4
template_variables:
template_variables:
rating1: critic # 3 as this is critic and mass_critic_rating_update: imdb
rating1: critic # 3 as this is critic and mass_critic_rating_update: imdb
rating1_image: imdb # 3 as this is critic and mass_critic_rating_update: imdb
rating1_image: imdb # 3 as this is critic and mass_critic_rating_update: imdb
rating1_font: config/custom_fonts/Impact.ttf # 3 local font accessible to PMM
rating1_font: config/custom_fonts/Impact.ttf # 3 local font accessible to PMM
rating1_font_size: 70 # 3 adjusted font size to fit rating
rating1_font_size: 70 # 3 adjusted font size to fit rating
rating2: audience # 4 as this is audience and mass_audience_rating_update: tmdb
rating2: audience # 4 as this is audience and mass_audience_rating_update: tmdb
rating2_image: tmdb # 4 as this is audience and mass_audience_rating_update: tmdb
rating2_image: tmdb # 4 as this is audience and mass_audience_rating_update: tmdb
rating2_font: config/custom_fonts/Avenir_95_Black.ttf # 4 local font accessible to PMM
rating2_font: config/custom_fonts/Avenir_95_Black.ttf # 4 local font accessible to PMM
rating2_font_size: 70 # 4 adjusted font size to fit rating
rating2_font_size: 70 # 4 adjusted font size to fit rating
horizontal_position: right # the set of ratings is on the right of the poster
horizontal_position: right # the set of ratings is on the right of the poster
overlay_level: episode
overlay_level: episode
- pmm: video_format # 5
- pmm: video_format # 5
template_variables:
template_variables:
overlay_level: episode
overlay_level: episode
- pmm: episode_info # 6
- pmm: episode_info # 6
template_variables:
template_variables:
overlay_level: episode
overlay_level: episode
- pmm: runtimes # 7
- pmm: runtimes # 7
template_variables:
template_variables:
overlay_level: episode
overlay_level: episode
operations:
operations:
mass_episode_critic_rating_update: imdb # 3 This operation will update the episodes critic rating in plex with IMDb ratings information
mass_episode_critic_rating_update: imdb # 3 This operation will update the episodes critic rating in plex with IMDb ratings information
@ -193,23 +194,23 @@ By default for Movies in Plex, the `Ratings Source` dropdown (`#3`) below, can c
**Plex Meta Manager can insert up to three ratings of your choice into the three spots regardless of what you choose in the `Advanced` tab of that Plex library**
**Plex Meta Manager can insert up to three ratings of your choice into the three spots regardless of what you choose in the `Advanced` tab of that Plex library**
![](images/ratings_source.png)
![](../images/ratings_source.png)
Plex has three available spots in the Plex DB to store ratings and thus Plex Meta Manager can be used to insert ratings sources of your choice into those spots. They are known as the User Rating (`#1`), Critic Rating (`#2`), and Audience Rating (`#3`).
Plex has three available spots in the Plex DB to store ratings and thus Plex Meta Manager can be used to insert ratings sources of your choice into those spots. They are known as the User Rating (`#1`), Critic Rating (`#2`), and Audience Rating (`#3`).
**Note that the little icons cannot be changed and that the numbers next to the little icons are reflected in the poster ratings overlay**
**Note that the little icons cannot be changed and that the numbers next to the little icons are reflected in the poster ratings overlay**
![](images/ratings_spot.png)
![](../images/ratings_spot.png)
To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb.
To be able to insert the ratings you want, Plex Meta Manager operations need to be defined. In this example below, User ratings (`#1`) are being filled with Rotten Tomatoes Critics Ratings. Critic ratings (`#2`) are filled with IMDb, and Audience ratings (`#3`) are filled with TMDb.
**mass_*_rating_update** sources can be found here: [operations](../../config/operations)
**mass_*_rating_update** sources can be found here: [operations](../../config/operations)
![](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_path` 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)
## Customizing Configs
## Customizing Configs
@ -221,110 +222,16 @@ This example changes the ratings overlay to work on episodes.
libraries:
libraries:
TV Shows:
TV Shows:
overlay_path:
overlay_path:
- pmm: ratings
- pmm: ratings
template_variables:
overlay_level: episode
```
Each file has a comment block at the top showing the available `template_variables` for each file. For example the [`pmm: genre`](https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/PMM/genre.yml) has this:
Each of these when passed will change how the collection runs slightly.
* `use_separator` Turn the [Separator Collection](../separators) on/off
* `sort_by` Sets how the collection is sorted
* `collection_mode` Sets the collection mode of the collection
* `collection_section` Sets the value at the start of the sort title
**In addition to the defined `template_variables` each file in the PMM Folder has access to the `radarr_add_missing` and `sonarr_add_missing` template variables and for dynamic collections most attributes can be passed as template variables**
For example if you want yearly oscar collections that go back 10 years instead of 5 all of which gets sent to radarr use the `data` and `radarr_add_missing` template variables.
```yaml
libraries:
Movies:
metadata_path:
- pmm: oscars
template_variables:
radarr_add_missing: true
data:
starting: current_year-10
ending: current_year
```
Or maybe you want to change the number of actor collections made using pmm: actor.
```yaml
libraries:
Movies:
overlay_path:
- pmm: actor
template_variables:
collection_mode: hide
data:
depth: 5
limit: 50
```
Or maybe you want to change the collection sort order of the genre collections using pmm: genre.
```yaml
libraries:
Movies:
metadata_path:
- pmm: genre
template_variables:
collection_section: 11
```
Or maybe you want to disable separators globally per library.
```yaml
libraries:
LIBRARYNAME:
template_variables:
use_separator: false
metadata_path:
```
Alternatively it can be turned off individually per git file:
```yaml
libraries:
LIBRARYNAME:
metadata_path:
- pmm: <file1> # separator is disabled
template_variables:
use_separator: false
- pmm: <file2> # separator is enabled by default
- pmm: <file3> # separator is disabled
template_variables:
template_variables:
use_separator: false
overlay_level: episode
```
```
## Errors
Each file has a page on the wiki showing the available `template_variables` for each file. For example the default `pmm: ratings` has a page [here](ratings).
**In addition to the defined `template_variables` almost all default Overlay files have access to the [Shared Variables](variables).**
If there are collections being made that have configuration errors or missing posters please either bring it up in our Discord or raise an Issue on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs/issues/new/choose).
@ -76,7 +76,7 @@ If that doesn't work, stop here until you fix that. Diagnoing and repairing Doc
#### Important note on Docker images
#### Important note on Docker images
This tutorial uses the official image, and you should, too. Don't change `meisnate12/plex-meta-manager` to the `linuxserver.io` image or any other; the lsio image specifically has [idiosyncracies](../docker.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't.
This tutorial uses the official image, and you should, too. Don't change `meisnate12/plex-meta-manager` to the `linuxserver.io` image or any other; the lsio image specifically has [idiosyncracies](images.md) that will prevent this walkthrough from working. The official image *will* behave exactly as documented below. Others very possibly won't.
The great thing about Docker is that all the setup you'd have to do to run PMM is already done inside the docker image.
The great thing about Docker is that all the setup you'd have to do to run PMM is already done inside the docker image.
2. only has `latest` version, no `develop` or `nightly`. If you want to switch to `develop` or `nightly` to try a new feature, they aren't available with LSIO image.
2. only has `latest` version, no `develop` or `nightly`. If you want to switch to `develop` or `nightly` to try a new feature, they aren't available with LSIO image.
3. doesn't support [runtime flags](environmental.md), only ENV vars. This means that a command like:
3. doesn't support [runtime flags](../environmental.md), only ENV vars. This means that a command like:
@ -5,7 +5,7 @@ To install a container from docker hub, you will need community applications - a
## Basic Installation
## Basic Installation
1. Head to the `Apps` tab of unRAID (Community Applications), and search `plex-meta-manager` in the upper right search box. There will be a couple of results shown, but you should ignore them ([Why?](../docker.md)) and use the official image, which is on DockerHub. Click `Click Here To Get More Results From DockerHub`.
1. Head to the `Apps` tab of unRAID (Community Applications), and search `plex-meta-manager` in the upper right search box. There will be a couple of results shown, but you should ignore them ([Why?](images.md)) and use the official image, which is on DockerHub. Click `Click Here To Get More Results From DockerHub`.
2. Click the download icon on the `plex meta manager` container by `meisnate12`.
2. Click the download icon on the `plex meta manager` container by `meisnate12`.