@ -0,0 +1,145 @@
|
||||
##############################################################################
|
||||
# DE Content Rating Collections #
|
||||
# Created by Yozora, Bullmoose20, & Sohjiro #
|
||||
# EDITING THIS FILE MAY CAUSE PULLING NEW UPDATES TO FAIL #
|
||||
# https://metamanager.wiki/en/latest/defaults/both/content_rating_de.html #
|
||||
##############################################################################
|
||||
|
||||
external_templates:
|
||||
pmm: templates
|
||||
template_variables:
|
||||
collection_section: "110"
|
||||
|
||||
collections:
|
||||
Ratings Collections:
|
||||
template:
|
||||
- name: separator
|
||||
separator: content_rating
|
||||
key_name: Ratings
|
||||
translation_key: separator
|
||||
|
||||
dynamic_collections:
|
||||
DE Content Rating:
|
||||
type: content_rating
|
||||
title_format: <<key_name>> <<library_typeU>>s
|
||||
other_name: Not Rated <<library_typeU>>s
|
||||
template:
|
||||
- smart_filter
|
||||
- shared
|
||||
other_template:
|
||||
- other_collection
|
||||
- smart_filter
|
||||
- shared
|
||||
template_variables:
|
||||
search_term:
|
||||
default: content_rating
|
||||
image:
|
||||
default: content_rating/de/<<key_name>>
|
||||
other: content_rating/de/NR
|
||||
translation_key:
|
||||
default: content_rating
|
||||
other: content_rating_other
|
||||
dynamic:
|
||||
default: true
|
||||
include:
|
||||
- "0"
|
||||
- 6
|
||||
- 12
|
||||
- 16
|
||||
- 18
|
||||
<<<<<<< HEAD
|
||||
- BPjM
|
||||
=======
|
||||
- BPJM
|
||||
>>>>>>> bullmoose20/patch-17
|
||||
addons:
|
||||
0:
|
||||
- de/0
|
||||
- U
|
||||
- 1
|
||||
- 2
|
||||
- 3
|
||||
- 4
|
||||
- 5
|
||||
- "01"
|
||||
- "02"
|
||||
- "03"
|
||||
- "04"
|
||||
- "05"
|
||||
- G
|
||||
- TV-G
|
||||
- TV-Y
|
||||
- G - All Ages
|
||||
- gb/U
|
||||
- gb/0+
|
||||
- E
|
||||
- gb/E
|
||||
- A
|
||||
- no/A
|
||||
- no/5
|
||||
- no/05
|
||||
6:
|
||||
- de/6
|
||||
- gb/9+
|
||||
- TV-PG
|
||||
- TV-Y7
|
||||
- TV-Y7-FV
|
||||
- PG
|
||||
- 7
|
||||
- 8
|
||||
- 9
|
||||
- 10
|
||||
- 11
|
||||
- "07"
|
||||
- "08"
|
||||
- "09"
|
||||
- PG - Children
|
||||
- no/6
|
||||
- no/06
|
||||
- no/7
|
||||
- no/07
|
||||
- no/9
|
||||
- no/09
|
||||
- no/10
|
||||
- no/11
|
||||
12:
|
||||
- de/12
|
||||
- gb/12
|
||||
- no/12
|
||||
- gb/15
|
||||
- gb/14+
|
||||
- TV-14
|
||||
- 13
|
||||
- 14
|
||||
- 15
|
||||
- PG-13 - Teens 13 or older
|
||||
- PG-13
|
||||
- no/15
|
||||
16:
|
||||
- de/16
|
||||
- no/16
|
||||
- A-17
|
||||
- TVMA
|
||||
- TV-MA
|
||||
- R
|
||||
- 17
|
||||
- M/PG
|
||||
18:
|
||||
- de/18
|
||||
- gb/18
|
||||
- M
|
||||
- no/18
|
||||
- R18
|
||||
- gb/R18
|
||||
- gb/X
|
||||
- X
|
||||
- NC-17
|
||||
- R+ - Mild Nudity
|
||||
- Rx - Hentai
|
||||
<<<<<<< HEAD
|
||||
BPjM:
|
||||
=======
|
||||
BPJM:
|
||||
>>>>>>> bullmoose20/patch-17
|
||||
- de/BPjM Restricted
|
||||
- BPjM Restricted
|
Before Width: | Height: | Size: 5.0 MiB After Width: | Height: | Size: 5.0 MiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 9.2 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 8.7 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.6 KiB |
@ -1,55 +0,0 @@
|
||||
---
|
||||
search:
|
||||
boost: 3
|
||||
---
|
||||
# Definition Settings
|
||||
|
||||
All the following attributes serve various functions as how the definition functions inside of Plex Meta Manager.
|
||||
|
||||
| Attribute | Description & Values |
|
||||
|:-----------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `name` | **Description:** Used to specify the name of the definition in Plex as different than the mapping name.<br>**Values:** Any String |
|
||||
| `limit` | **Description:** Used to specify the max number of items for the definition<br>**Values:** Number greater than 0 |
|
||||
| `template` | **Description:** Used to specify a template and template variables to use for this definition. See the [Templates Page](../templates.md) for more information.<br>**Values:** Dictionary |
|
||||
| `run_again` | **Description:** Used to try and add all the missing items to the definition again after the daily run.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
| `sync_mode` | **Description:** Used to change how builders sync with this definition.<br>**Default:** `sync_mode` [settings value](../../config/settings.md) in the Configuration File<br>**Values:**<table class="clearTable"><tr><td>`append`</td><td>Only Add Items to the Collection</td></tr><tr><td>`sync`</td><td>Add & Remove Items from the Collection</td></tr></table> |
|
||||
| `minimum_items` | **Description:** Minimum items that must be found to add to a definition.<br>**Default:** `minimum_items` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** number greater than 0 |
|
||||
| `delete_below_minimum` | **Description:** Deletes the definition if below the minimum.<br>**Default:** `delete_below_minimum` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `delete_not_scheduled` | **Description:** Deletes the definition if its skipped because its not scheduled.<br>**Default:** `delete_not_scheduled` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `tmdb_region` | **Description:** Sets the region for `tmdb_popular`, `tmdb_now_playing`, `tmdb_top_rated`, and `tmdb_upcoming` |
|
||||
| `validate_builders` | **Description:** When set to false the definition will not fail if one builder fails.<br>**Default:** `true`<br>**Values:** `true` or `false` |
|
||||
| `cache_builders` | **Description:** Caches the items found by the builders for a number of days. This is useful if you run the same configuration on multiple libraries/servers in one run just set the value to `1`.<br>**Default:** `0` <br>**Values:** number 0 or greater |
|
||||
| `blank_collection` | **Description:** When set to true the collection will be created with no builders and no items added.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
| `build_collection` | **Description:** When set to false the collection won't be created but items can still be added to Radarr/Sonarr. Does not work for playlists.<br>**Default:** `true`<br>**Values:** `true` or `false` |
|
||||
| `server_preroll` | **Description:** Used to set the `Movie pre-roll video` Text box in Plex under Settings -> Extras.<br>You can run this with a [schedule](schedule.md) to change the pre-rolls automatically.<br>**Values:** Any String |
|
||||
| `missing_only_released` | **Description:** definition Level `missing_only_released` toggle.<br>**Default:** `missing_only_released` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `only_filter_missing` | **Description:** definition Level `only_filter_missing` toggle.<br>**Default:** `only_filter_missing` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `show_filtered` | **Description:** definition level `show_filtered` toggle.<br>**Default:** `show_filtered` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `show_missing` | **Description:** definition level `show_missing` toggle.<br>**Default:** `show_missing` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `save_report` | **Description:** definition level `save_report` toggle.<br>**Default:** `save_report` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** `true` or `false` |
|
||||
| `ignore_ids` | **Description:** definition level `ignore_ids` which is combined with the library and global `ignore_ids`.<br>**Default:** `ignore_ids` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** List or comma-separated String of TMDb/TVDb IDs |
|
||||
| `ignore_imdb_ids` | **Description:** definition level `ignore_imdb_ids` which is combined with the library and global `ignore_imdb_ids`.<br>**Default:** `ignore_imdb_ids` [settings value](../../config/settings.md) in the Configuration File<br>**Values:** List or comma-separated String of IMDb IDs |
|
||||
| `name_mapping` | **Description:** Used to specify the folder name in the [Image Assets Directory](../../pmm/install/guides/assets.md) i.e. if your definition name contains characters that are not allowed in file paths (i.e. for windows `<`, `>`, `:`, `"`, `/`, `\`, `?`, `*` cannot be in the file path), but you want them in your name you can this to specify the name in the file system.<br>**Values:** Any String |
|
||||
| `test` | **Description:** When running in Test Mode (`--run-tests` [option](../../pmm/essentials/environmental)) only definitions with `test: true` will be run.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
| `changes_webhooks` | **Description:** Used to specify a definition changes webhook for just this definition.<br>**Values:** List of webhooks |
|
||||
| `sync_to_trakt_list` | **Description:** Used to specify a trakt list you want the definition synced to.<br>**Values:** Trakt List Slug you want to sync to |
|
||||
| `sync_missing_to_trakt_list` | **Description:** Used to also sync missing items to the Trakt List specified by `sync_to_trakt_list`.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
| `run_definition` | **Description:** Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` |
|
||||
| `default_percent` | **Description:** Used to declare the default percent for `episodes`, `seasons`, `tracks`, and `albums` [special filters](../filters.md#special-filters). Default is 50.<br>**Values:** Integer between 1 and 100 |
|
||||
| `ignore_blank_results` | **Description:** Used to not have Errors resulting from blank results from builders.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
| `only_run_on_create` | **Description:** Used to only run the collection definition if the collection doesn't already exist.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
| `delete_collections_named` | **Description:** Used to delete any collections in your plex named one of the given collections.<br>**Values:** List of Collection Names to delete |
|
||||
|
||||
An example of using `default_percent` which is used in an external yml file and not within config.yml:
|
||||
```yml
|
||||
HDR10Plus:
|
||||
default_percent: 35 #default default_percent is 50
|
||||
template:
|
||||
- name: Resolution
|
||||
weight: 400
|
||||
opt1: hdr10p
|
||||
plex_search:
|
||||
all:
|
||||
hdr: true
|
||||
filters:
|
||||
filepath.regex: 'HDR10\+|HDR10P'
|
@ -1,124 +0,0 @@
|
||||
# Schedule Setting
|
||||
|
||||
Plex Meta Manager allows you to schedule certain libraries/files so that runs can be tailored to suit your needs.
|
||||
|
||||
This is particularly handy for users who have a lot of libraries or run a lot of Metadata/Operations on their libraries.
|
||||
|
||||
### IMPORTANT:
|
||||
|
||||
These schedules do not trigger PMM to run; they control what PMM will do if it happens to be running at the scheduled time. `weekly(sunday)`, for example, does not mean "run PMM on Sunday to do this thing"; it means "If PMM is running, and it's Sunday, do this thing".
|
||||
|
||||
The scheduling options are:
|
||||
|
||||
| Name | Description | Format | Example |
|
||||
|:-------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------|:---------------------------------------------------------------------|
|
||||
| Hourly | Update only when the script is run in that hour or hour range | hourly(Hour of Day)<br>hourly(Start Hour-End Hour) | `hourly(17)`<br>`hourly(17-04)` |
|
||||
| Daily | Update once a day | daily | `daily` |
|
||||
| Weekly | Update once a week on the specified days (For multiple days, use a bar-separated (<code>|</code>) list) | weekly(Days of Week) | `weekly(sunday)`<br><code>weekly(sunday|tuesday)</code> |
|
||||
| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` |
|
||||
| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` |
|
||||
| Range | Updates whenever the date is within the range (For multiple ranges, use a bar-separated (<code>|</code>) list) | range(MM/DD-MM/DD) | `range(12/01-12/31)`<br><code>range(8/01-8/15|9/01-9/15)</code> |
|
||||
| Never | Never updates | never | `never` |
|
||||
| Non Existing | Updates if it doesn't exist | non_existing | `non_existing` |
|
||||
| All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` |
|
||||
|
||||
* `daily` is the default when `schedule` is not specified.
|
||||
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../../pmm/essentials/environmental.md#time-to-run).
|
||||
* You can have multiple scheduling options as a list.
|
||||
* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled.
|
||||
|
||||
## Examples
|
||||
|
||||
Below is an example of a library which has been scheduled to run every Sunday. This will schedule everything within the library (in this case Collection Files and Operations) for the same day.
|
||||
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
schedule: weekly(sunday)
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
- pmm: imdb
|
||||
- pmm: studio
|
||||
- pmm: genre
|
||||
- pmm: actor
|
||||
operations:
|
||||
mass_critic_rating_update: tmdb
|
||||
```
|
||||
|
||||
Collection Files, Playlist Files, and Overlay Files can all be individually scheduled, as seen below where different files are scheduled to run on each day of the week:
|
||||
|
||||
**Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.**
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
schedule: weekly(monday)
|
||||
- pmm: imdb
|
||||
schedule: weekly(tuesday)
|
||||
- folder: config/Movies/
|
||||
schedule: weekly(wednesday)
|
||||
- pmm: genre
|
||||
schedule: weekly(thursday)
|
||||
- pmm: actor
|
||||
schedule: weekly(friday)
|
||||
overlay_files:
|
||||
- schedule: weekly(saturday)
|
||||
- pmm: audio_codec
|
||||
- pmm: resolution
|
||||
- pmm: video_format
|
||||
playlist_files:
|
||||
- file: config/Playlists.yml
|
||||
schedule: weekly(sunday)
|
||||
```
|
||||
|
||||
Below is an example of a collection which has been scheduled to run on a Sunday. In this scenario, if you run PMM on a Monday, this collection will be skipped but any other collections which do not have a scheduled defined will be run.
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
TMDb Trending Weekly:
|
||||
tmdb_trending_weekly: 30
|
||||
sync_mode: sync
|
||||
schedule: weekly(sunday)
|
||||
TMDb Top Rated:
|
||||
tmdb_top_rated: 30
|
||||
sync_mode: sync
|
||||
schedule:
|
||||
- monthly(1)
|
||||
- monthly(15)
|
||||
```
|
||||
|
||||
You can also schedule items to be "pinned" to your home screen on a schedule. For example, this collection will be pinned to your home screen for the month of December and on January 1st will no longer be pinned (you must run PMM on 1st January for the removal of the pin to happen)
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
Christmas Movies:
|
||||
imdb_list: https://www.imdb.com/list/ls000096828/
|
||||
sync_mode: sync
|
||||
visible_home: range(12/01-12/31)
|
||||
```
|
||||
|
||||
Whilst it isn't possible to schedule individual Operations, you can create additional placeholder library names and point them to the original library using `library_name`. This can be used to achieve individually scheduled operations, as seen below:
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
Movies Operations (Monday): # Name doesn't matter
|
||||
library_name: Movies # Must match your library name in Plex
|
||||
schedule: weekly(monday)
|
||||
operations:
|
||||
mass_user_rating_update: imdb
|
||||
Movies Operations (Wednesday): # Name doesn't matter
|
||||
library_name: Movies # Must match your library name in Plex
|
||||
schedule: weekly(wednesday)
|
||||
operations:
|
||||
mass_audience_rating_update: tmdb
|
||||
Movies Operations (Friday): # Name doesn't matter
|
||||
library_name: Movies # Must match your library name in Plex
|
||||
schedule: weekly(friday)
|
||||
operations:
|
||||
mass_critic_rating_update: trakt
|
||||
```
|
@ -1,105 +0,0 @@
|
||||
# Dynamic Collections
|
||||
|
||||
Plex Meta Manager can dynamically create collections based on different criteria, such as
|
||||
* Collections based on the Collections from TMDb for every item in the library. ([Star Wars](https://www.themoviedb.org/collection/10-star-wars-collection), [Harry Potter](https://www.themoviedb.org/collection/1241), etc...)
|
||||
* Collections based on each of a Users Trakt Lists
|
||||
* Collections for the top `X` popular people on TMDb (Bruce Willis, Tom Hanks, etc...)
|
||||
* Collections for each decade represented in the library (Best of 1990s, Best of 2000s, etc...)
|
||||
* Collections for each of the moods/styles within a Music library (A Cappella, Pop Rock, etc...)
|
||||
|
||||
The main purpose of dynamic collections is to automate the creation of collections which would otherwise require considerable user input and repetition (such as creating a collection for every genre).
|
||||
|
||||
Each dynamic collection must have a mapping name (just like standard collections), which is also attached to the collection as a label to mark it as having been created by this dynamic collection.
|
||||
|
||||
This example will create a collection for every TMDb Collection associated with items in the library.
|
||||
|
||||
```yaml
|
||||
dynamic_collections:
|
||||
TMDb Collections: # This name is the mapping name
|
||||
type: tmdb_collection
|
||||
remove_suffix: "Collection"
|
||||
```
|
||||
|
||||
## Collection Naming
|
||||
|
||||
By default, the collections generated will be named for the thing being used to create them; things like genres, countries, actors or even Trakt List Names.
|
||||
|
||||
There are many attributes that can change the titles, including `title_format`, `remove_suffix`, `remove_prefix`, `key_name_override`, and `title_override` all detailed below.
|
||||
|
||||
## Dynamic Keys & Key Names
|
||||
|
||||
A `dynamic key` or `key` for short is used to refer to a specific value/result from the dynamic collection criteria that will be used to create the collection.
|
||||
|
||||
A `key_name` is the name that replaces `<<key_name>>` in `title_format` to create the collection titles for each key.
|
||||
|
||||
An example of some keys and their names that would be generated from a `tmdb_collection` dynamic collection are
|
||||
* `key`: "10"
|
||||
* `key_name`: Star Wars Collection
|
||||
* `key`: "1241"
|
||||
* `key_name`: Harry Potter Collection
|
||||
|
||||
### Example Key Usage
|
||||
|
||||
Keys can be used for a number of purposes, examples can be found throughout this page. A few examples are shown below:
|
||||
|
||||
* Excluding the "Horror" key from the `Genre` dynamic collection definition
|
||||
|
||||
```yaml
|
||||
dynamic_collections:
|
||||
Genres: # mapping name does not matter, just needs to be unique
|
||||
type: genre
|
||||
exclude:
|
||||
- Horror
|
||||
```
|
||||
|
||||
* Using the `key_name_override` attribute to change the formatting of "France" to "French" so that a collection can be named "French Cinema" instead of simply "France"
|
||||
* This particular example also uses the `title_format` attribute to manipulate the naming convention of the collections.
|
||||
|
||||
```yaml
|
||||
dynamic_collections:
|
||||
Countries: # mapping name does not matter, just needs to be unique
|
||||
type: country
|
||||
title_format: <<key_name>> Cinema
|
||||
key_name_override:
|
||||
France: French
|
||||
```
|
||||
|
||||
* Using the `addons` attribute to combine multiple `keys`, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into one "MTV" collection.
|
||||
* When doing this, individual collections will not be created for the individual MTV collections, instead they will be merged within the "MTV" collection.
|
||||
|
||||
```yaml
|
||||
dynamic_collections:
|
||||
networks:
|
||||
type: network
|
||||
addons:
|
||||
MTV:
|
||||
- MTV2
|
||||
- MTV3
|
||||
- MTV (UK)
|
||||
```
|
||||
|
||||
## Attributes
|
||||
|
||||
| Attribute | Description | Required |
|
||||
|:--------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
|
||||
| [`type`](#type--data) | Type of Dynamic Collection to be created. | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [`data`](#type--data) | Data to determine how dynamic collections with a certain `type` are created. | Depends on `type` |
|
||||
| [`exclude`](#exclude) | Exclude this list of keys from being created into collections. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`addons`](#addons) | Defines how multiple keys can be combined under a parent key. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`template`](#template) | Name of the template to use for these dynamic collections. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`template_variables`](#template-variables) | Defines how template variables can be defined by key. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`other_template`](#other-template) | Name of the template to use for the other collection. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`remove_suffix`](#remove-prefixsuffix) | Removes the defined suffixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`remove_prefix`](#remove-prefixsuffix) | Removes the defined prefixes from the key before it's used in the collection title. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`title_format`](#title-format) | This is the format for the collection titles. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`key_name_override`](#key-name-override) | Defines how key names can be overridden before they are formatted into collection titles. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`title_override`](#title-override) | Defines how collection titles can be overridden ignoring title formatting. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`custom_keys`](#custom-keys) | Defines if custom keys are allowed. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`test`](#test) | Will add `test: true` to all collections for test runs. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`sync`](#sync) | Will remove dynamic collections that are no longer in the creation list. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`include`](#include) | Define a list of keys to be made into collections. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`other_name`](#other-name) | Used in combination with `include`. When defined, all keys not in `include` or `addons` will be combined into this collection. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
{%
|
||||
include-markdown "./dynamic_types.md"
|
||||
%}
|
@ -1,3 +0,0 @@
|
||||
{%
|
||||
include-markdown "../config/files_paths.md"
|
||||
%}
|
@ -1,24 +0,0 @@
|
||||
# Builders
|
||||
|
||||
Builders use third-party services to source items to be added to the collection. Multiple builders can be used in the same collection from a variety of sources listed below.
|
||||
|
||||
| Name | Description | Requires Config |
|
||||
|:--------------------------------|:----------------------------------------------------------------------------------------------|:------------------------------------------:|
|
||||
| [Plex](plex.md) | Grabs items based on the metadata inside your Plex Server. | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Smart](smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. (Collections Only) | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [TMDb](tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [TVDb](tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [IMDb](imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [Trakt](trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Tautulli](tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Radarr](radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Sonarr](sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [MdbList](mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [Letterboxd](letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [ICheckMovies](icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [FlixPatrol](flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [Reciperr](reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [StevenLu](stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [AniDB](anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [AniList](anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [MyAnimeList](myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } |
|
@ -1,8 +0,0 @@
|
||||
# Plex Builders
|
||||
|
||||
The below builders are available based on metadata inside your Plex Server.
|
||||
|
||||
| Name | Description | Requires Config |
|
||||
|:-------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
|
||||
| [Dumb Builders](../plex.md) | Grabs items based on the metadata inside your Plex Server. Results are static and require PMM to re-run to update. | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Smart Builders](../smart.md) | Creates Smart Collections based on the metadata inside your Plex Server. Results are dynamic and will update as your library updates without the need to re-run PMM (Collections Only) | :fontawesome-solid-circle-check:{ .green } |
|
@ -1,22 +0,0 @@
|
||||
# Third-Party Builders
|
||||
|
||||
The below builders are available based on third-party services, multiple builders can be combined in one collection.
|
||||
|
||||
| Name | Description | Requires Config |
|
||||
|:--------------------------------------------|:----------------------------------------------------------------------------------------------|:------------------------------------------:|
|
||||
| [TMDb](../tmdb.md) | Grabs items based on metadata and lists on [TheMovieDb.org](https://www.themoviedb.org/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [TVDb](../tvdb.md) | Grabs items based on metadata and lists on [TheTVDb.com](https://www.thetvdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [IMDb](../imdb.md) | Grabs items based on metadata and lists on [IMDb.com](https://www.imdb.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [Trakt](../trakt.md) | Grabs items based on metadata and lists on [Trakt.tv](https://trakt.tv/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Tautulli](../tautulli.md) | Grabs items based on metadata and lists in your [Tautulli](https://tautulli.com/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Radarr](../radarr.md) | Grabs items based on metadata and lists in your [Radarr](https://radarr.video/) . | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [Sonarr](../sonarr.md) | Grabs items based on metadata and lists in your [Sonarr](https://sonarr.tv/). | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [MdbList](../mdblist.md) | Grabs items based on metadata and lists on [MdbList.com](https://mdblist.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [Letterboxd](../letterboxd.md) | Grabs items based on metadata and lists on [Letterboxd.com](https://letterboxd.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [ICheckMovies](../icheckmovies.md) | Grabs items based on metadata and lists on [ICheckMovies.com](https://www.icheckmovies.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [FlixPatrol](../flixpatrol.md) | Grabs items based on metadata and lists on [FlixPatrol.com](https://flixpatrol.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [Reciperr](../reciperr.md) | Grabs items based on metadata and lists on [reciperr.com](https://reciperr.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [StevenLu](../stevenlu.md) | Grabs items based on metadata and lists on [StevenLu.com](https://movies.stevenlu.com/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [AniDB](../anidb.md) | Grabs items based on metadata and lists on [AniDB.net](https://anidb.net/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [AniList](../anilist.md) | Grabs items based on metadata and lists on [AniList.co](https://anilist.co/). | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [MyAnimeList](../myanimelist.md) | Grabs items based on metadata and lists on [MyAnimeList.net](https://myanimelist.net/). | :fontawesome-solid-circle-check:{ .green } |
|
@ -1,157 +0,0 @@
|
||||
## This file is a template remove the .template to use the file
|
||||
|
||||
libraries: # This is called out once within the config.yml file
|
||||
Movies: # These are names of libraries in your Plex
|
||||
collection_files:
|
||||
- pmm: basic # This is a file within PMM's defaults folder
|
||||
- pmm: imdb # This is a file within PMM's defaults folder
|
||||
# see the wiki for how to use local files, folders, URLs, or files from git
|
||||
overlay_files:
|
||||
- remove_overlays: false # Set this to true to remove all overlays
|
||||
- pmm: ribbon # This is a file within PMM's defaults folder
|
||||
# see the wiki for how to use local files, folders, URLs, or files from git
|
||||
TV Shows:
|
||||
collection_files:
|
||||
- pmm: basic # This is a file within PMM's defaults folder
|
||||
- pmm: imdb # This is a file within PMM's defaults folder
|
||||
# see the wiki for how to use local files, folders, URLs, or files from git
|
||||
overlay_files:
|
||||
- remove_overlays: false # Set this to true to remove all overlays
|
||||
- pmm: ribbon # This is a file within PMM's defaults folder
|
||||
# see the wiki for how to use local files, folders, URLs, or files from git
|
||||
Anime:
|
||||
collection_files:
|
||||
- pmm: basic # This is a file within PMM's defaults folder
|
||||
- pmm: anilist # This is a file within PMM's defaults folder
|
||||
# see the wiki for how to use local files, folders, URLs, or files from git
|
||||
Music:
|
||||
collection_files:
|
||||
- file: config/Music.yml # This is a local file THAT YOU MIGHT CREATE
|
||||
playlist_files:
|
||||
- pmm: playlist # This is a file within PMM's defaults folder
|
||||
template_variables:
|
||||
libraries: Movies, TV Shows # list of libraries that you want the PMM Defaults playlists to look at
|
||||
# see the wiki for how to use local files, folders, URLs, or files from git
|
||||
settings:
|
||||
run_order:
|
||||
- operations
|
||||
- metadata
|
||||
- collections
|
||||
- overlays
|
||||
cache: true
|
||||
cache_expiration: 60
|
||||
asset_directory: config/assets
|
||||
asset_folders: true
|
||||
asset_depth: 0
|
||||
create_asset_folders: false
|
||||
prioritize_assets: false
|
||||
dimensional_asset_rename: false
|
||||
download_url_assets: false
|
||||
show_missing_season_assets: false
|
||||
show_missing_episode_assets: false
|
||||
show_asset_not_needed: true
|
||||
sync_mode: append
|
||||
minimum_items: 1
|
||||
default_collection_order:
|
||||
delete_below_minimum: true
|
||||
delete_not_scheduled: false
|
||||
run_again_delay: 2
|
||||
missing_only_released: false
|
||||
only_filter_missing: false
|
||||
show_unmanaged: true
|
||||
show_unconfigured: true
|
||||
show_filtered: false
|
||||
show_options: false
|
||||
show_missing: true
|
||||
show_missing_assets: true
|
||||
save_report: false
|
||||
tvdb_language: eng
|
||||
ignore_ids:
|
||||
ignore_imdb_ids:
|
||||
item_refresh_delay: 0
|
||||
playlist_sync_to_users: all
|
||||
playlist_exclude_users:
|
||||
playlist_report: false
|
||||
verify_ssl: true
|
||||
custom_repo:
|
||||
check_nightly: false
|
||||
webhooks: # Can be individually specified per library as well
|
||||
error:
|
||||
version:
|
||||
run_start:
|
||||
run_end:
|
||||
changes:
|
||||
plex: # Can be individually specified per library as well; REQUIRED for Plex Meta Manager to run
|
||||
url: http://192.168.1.12:32400
|
||||
token: ####################
|
||||
timeout: 60
|
||||
clean_bundles: false
|
||||
empty_trash: false
|
||||
optimize: false
|
||||
tmdb: # REQUIRED for Plex Meta Manager to run
|
||||
apikey: ################################
|
||||
language: en
|
||||
tautulli: # Can be individually specified per library as well
|
||||
url: http://192.168.1.12:8181
|
||||
apikey: ################################
|
||||
omdb:
|
||||
apikey: ########
|
||||
cache_expiration: 60
|
||||
mdblist:
|
||||
apikey: #########################
|
||||
cache_expiration: 60
|
||||
notifiarr:
|
||||
apikey: ####################################
|
||||
anidb: # Not required for AniDB builders unless you want mature content
|
||||
username: ######
|
||||
password: ######
|
||||
radarr: # Can be individually specified per library as well
|
||||
url: http://192.168.1.12:7878
|
||||
token: ################################
|
||||
add_missing: false
|
||||
add_existing: false
|
||||
root_folder_path: S:/Movies
|
||||
monitor: true
|
||||
availability: announced
|
||||
quality_profile: HD-1080p
|
||||
tag:
|
||||
search: false
|
||||
radarr_path:
|
||||
plex_path:
|
||||
sonarr: # Can be individually specified per library as well
|
||||
url: http://192.168.1.12:8989
|
||||
token: ################################
|
||||
add_missing: false
|
||||
add_existing: false
|
||||
root_folder_path: "S:/TV Shows"
|
||||
monitor: all
|
||||
quality_profile: HD-1080p
|
||||
language_profile: English
|
||||
series_type: standard
|
||||
season_folder: true
|
||||
tag:
|
||||
search: false
|
||||
cutoff_search: false
|
||||
sonarr_path:
|
||||
plex_path:
|
||||
trakt:
|
||||
client_id: ####################
|
||||
client_secret: ####################
|
||||
pin:
|
||||
authorization:
|
||||
# everything below is autofilled by Plex Meta Manager
|
||||
access_token:
|
||||
token_type:
|
||||
expires_in:
|
||||
refresh_token:
|
||||
scope: public
|
||||
created_at:
|
||||
mal:
|
||||
client_id: ####################
|
||||
client_secret: ####################
|
||||
authorization:
|
||||
# everything below is autofilled by Plex Meta Manager
|
||||
access_token:
|
||||
token_type:
|
||||
expires_in:
|
||||
refresh_token:
|
@ -1,38 +0,0 @@
|
||||
# Config File
|
||||
|
||||
Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other third-party services via API.
|
||||
|
||||
By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`.
|
||||
|
||||
A template Configuration File can be found in the [GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template).
|
||||
|
||||
This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific requirements for setup that can be found by clicking the links within the table.
|
||||
|
||||
| Attribute | Required |
|
||||
|:---------------------------------|:----------------------------------------------------------------------|
|
||||
| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [`playlist_files`](playlists.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library |
|
||||
| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
## Configuration File Example
|
||||
|
||||
This example outlines what a "standard" config.yml file might look like when in use.
|
||||
|
||||
~~~yaml
|
||||
{%
|
||||
include-markdown "./config.yml.template"
|
||||
comments=false
|
||||
%}
|
||||
~~~
|
@ -1,259 +0,0 @@
|
||||
# Movie Library Metadata
|
||||
|
||||
You can have the script edit the metadata of Movies by adding them to the `metadata` mapping of a Metadata File.
|
||||
|
||||
An example of multiple metadata edits in a movie library is below:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
Godzilla (1954):
|
||||
match:
|
||||
title: Godzilla
|
||||
year: 1954
|
||||
content_rating: R
|
||||
Godzilla (1998):
|
||||
match:
|
||||
title: Godzilla
|
||||
year: 1998
|
||||
sort_title: Godzilla 03
|
||||
content_rating: PG-13
|
||||
Shin Godzilla:
|
||||
sort_title: Godzilla 06
|
||||
content_rating: R
|
||||
Godzilla 1985:
|
||||
content_rating: PG
|
||||
"Godzilla 2000: Millennium":
|
||||
originally_available: 1999-08-18
|
||||
Godzilla Against MechaGodzilla:
|
||||
originally_available: 2002-03-23
|
||||
Godzilla Raids Again:
|
||||
content_rating: G
|
||||
originally_available: 1955-05-21
|
||||
Godzilla vs. Biollante:
|
||||
content_rating: PG
|
||||
Godzilla vs. Destoroyah:
|
||||
content_rating: PG
|
||||
originally_available: 1995-01-19
|
||||
Godzilla vs. Gigan:
|
||||
content_rating: G
|
||||
originally_available: 1972-09-14
|
||||
Godzilla vs. Hedorah:
|
||||
content_rating: G
|
||||
originally_available: 1971-04-01
|
||||
Godzilla vs. King Ghidorah:
|
||||
content_rating: PG
|
||||
originally_available: 1991-04-28
|
||||
Godzilla vs. Mechagodzilla:
|
||||
content_rating: G
|
||||
originally_available: 1974-03-24
|
||||
Godzilla vs. Mechagodzilla II:
|
||||
content_rating: PG
|
||||
Godzilla vs. Megaguirus:
|
||||
content_rating: PG
|
||||
originally_available: 2000-08-31
|
||||
Godzilla vs. Megalon:
|
||||
content_rating: G
|
||||
originally_available: 1973-03-17
|
||||
Godzilla vs. Mothra:
|
||||
content_rating: PG
|
||||
originally_available: 1992-04-28
|
||||
Godzilla vs. SpaceGodzilla:
|
||||
content_rating: PG
|
||||
originally_available: 1994-01-19
|
||||
Godzilla, King of the Monsters!:
|
||||
content_rating: G
|
||||
"Godzilla, Mothra and King Ghidorah: Giant Monsters All-Out Attack":
|
||||
content_rating: PG
|
||||
originally_available: 2001-08-31
|
||||
"Godzilla: Final Wars":
|
||||
content_rating: PG
|
||||
originally_available: 2004-12-13
|
||||
"Godzilla: Tokyo S.O.S.":
|
||||
originally_available: 2003-12-14
|
||||
Halloween (Rob Zombie):
|
||||
match:
|
||||
title:
|
||||
- Halloween (Rob Zombie)
|
||||
- Halloween
|
||||
year: 2007
|
||||
"Halo 4: Forward Unto Dawn":
|
||||
match:
|
||||
title:
|
||||
- Halo 4: Forward Unto Dawn
|
||||
- Halo 4 Forward Unto Dawn
|
||||
tmdb_show: 56295
|
||||
content_rating: R
|
||||
```
|
||||
|
||||
## Matching Movies
|
||||
|
||||
The `match` attribute is used to match movies within Plex to that definition within the Metadata file. One definition can match and edit multiple movies. The available matching options are outlined below.
|
||||
|
||||
| Attribute | Description |
|
||||
|:-------------------------------|:------------------------------------------------------------------------------------------------------------------|
|
||||
| `title`<sup>1</sup> | Only matches movies that exactly match the movie's Title. Can be a list (only one needs to match). |
|
||||
| `year` | Only matches movies that were released in the given year. |
|
||||
| `mapping_id`<sup>2</sup> | Only matches movies that have the given TMDb or IMDb ID. |
|
||||
| `edition`<sup>3</sup> | Only matches movies that exactly match the movie's Edition. Can be a list (only one needs to match). |
|
||||
| `edition_contains`<sup>3</sup> | Only matches movies where the movie's Edition contains the given string. Can be a list (only one needs to match). |
|
||||
| `blank_edition`<sup>3</sup> | Only matches movies that have no Edition.<br>**Default:** `false`<br>**Values:** `true` or `false` |
|
||||
|
||||
1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching.
|
||||
2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching.
|
||||
3. When the server does not have a Plex Pass then the Edition Field is not accessible. In this scenario, PMM will check the movie's filepath for `{edition-...}` to determine what the edition is.
|
||||
|
||||
### Examples
|
||||
|
||||
Below are some examples on how movies can be matched.
|
||||
|
||||
#### Example 1 - `title` and `mapping_id`
|
||||
|
||||
The below example shows how `title` and `mapping_id` can be used to match movies.
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
movie1: # Matches via the title "Star Wars"
|
||||
match:
|
||||
title: Star Wars
|
||||
edits...
|
||||
movie2: # Matches via TMDb ID: 299534
|
||||
match:
|
||||
mapping_id: 299534
|
||||
edits...
|
||||
movie3: # Matches via IMDb ID: tt4154756
|
||||
match:
|
||||
mapping_id: tt4154756
|
||||
edits...
|
||||
movie4: # Matches via the title "9"
|
||||
match:
|
||||
title: 9
|
||||
edits...
|
||||
```
|
||||
|
||||
The Mapping Name can also be used to reduce line-count, as shown here:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
Star Wars: # Matches via the title "Star Wars"
|
||||
edits...
|
||||
299534: # Matches via TMDb ID: 299534
|
||||
edits...
|
||||
tt4154756: # Matches via IMDb ID: tt4154756
|
||||
edits...
|
||||
"9": # Matches via the title "9"
|
||||
edits...
|
||||
```
|
||||
|
||||
**Note:** to search for a movie titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the movie associated with that TMDb ID.
|
||||
|
||||
#### Example 2 - `title` and `year`
|
||||
|
||||
The below example shows how `title` and `year` can be used to match movies.
|
||||
|
||||
In this example, there are two movies in the library called "Godzilla", so the `year` attribute is used to identify which movie is being matched.
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
Godzilla (1954): # Matches via the title "Godzilla" released in 1954
|
||||
match:
|
||||
title: Godzilla
|
||||
year: 1954
|
||||
edits...
|
||||
Godzilla (1998): # Matches via the title "Godzilla" released in 1998
|
||||
match:
|
||||
title: Godzilla
|
||||
year: 1998
|
||||
edits...
|
||||
```
|
||||
|
||||
#### Example 3 - using `editions`
|
||||
|
||||
The edition attributes can be used to further specify which version of a movie should be matched within Plex.
|
||||
|
||||
This can be combined with Example 1 as follows
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
movie1: # Matches via the title "Star Wars" and edition containing "4K77"
|
||||
match:
|
||||
title: Star Wars
|
||||
edition_contains: 4K77
|
||||
edits...
|
||||
```
|
||||
|
||||
If you wanted to specify the version of Star Wars which does not have an edition, then the `blank_edition` attribute can be used as shown below:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
movie1: # Matches via the title "Star Wars" and checks for no edition version
|
||||
match:
|
||||
title: Star Wars
|
||||
blank_edition: true
|
||||
edits...
|
||||
```
|
||||
|
||||
## Metadata Edits
|
||||
|
||||
The available attributes for editing movies are as follows
|
||||
|
||||
### Special Attributes
|
||||
|
||||
| Attribute | Description |
|
||||
|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `tmdb_show` | TMDb Show ID to use for metadata. Used when the Movie in your library is actually a miniseries on TMDb. (Example: [Halo 4: Forward Unto Dawn](https://www.themoviedb.org/tv/56295) or [IT](https://www.themoviedb.org/tv/19614)) **This is not used to say this movie is the given ID.** |
|
||||
| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` |
|
||||
|
||||
1. If the server does not have a Plex Pass then the Edition Field is not accessible. In this case PMM will check the movies filepath for `{edition-MOVIES EDITION}` to determine what the edition is.
|
||||
|
||||
### General Attributes
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:-----------------------|:---------------------------------------------------------------|
|
||||
| `title` | Text to change Title. |
|
||||
| `sort_title` | Text to change Sort Title. |
|
||||
| `edition`<sup>1</sup> | Text to change Edition. |
|
||||
| `original_title` | Text to change Original Title. |
|
||||
| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD |
|
||||
| `content_rating` | Text to change Content Rating. |
|
||||
| `user_rating` | Number to change User Rating. |
|
||||
| `audience_rating` | Number to change Audience Rating. |
|
||||
| `critic_rating` | Number to change Critic Rating. |
|
||||
| `studio` | Text to change Studio. |
|
||||
| `tagline` | Text to change Tagline. |
|
||||
| `summary` | Text to change Summary. |
|
||||
|
||||
1. Requires Plex Pass
|
||||
|
||||
### Tag Attributes
|
||||
|
||||
You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`.
|
||||
|
||||
You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`.
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:-------------|:-----------------------------------------------------|
|
||||
| `director` | List or comma-separated text of each Director Tag. |
|
||||
| `country` | List or comma-separated text of each Country Tag. |
|
||||
| `genre` | List or comma-separated text of each Genre Tag. |
|
||||
| `writer` | List or comma-separated text of each Writer Tag. |
|
||||
| `producer` | List or comma-separated text of each Producer Tag. |
|
||||
| `collection` | List or comma-separated text of each Collection Tag. |
|
||||
| `label` | List or comma-separated text of each Label Tag. |
|
||||
|
||||
### Image Attributes
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:------------------|:-------------------------------------------------|
|
||||
| `url_poster` | URL of image publicly available on the internet. |
|
||||
| `file_poster` | Path to image in the file system. |
|
||||
| `url_background` | URL of image publicly available on the internet. |
|
||||
| `file_background` | Path to image in the file system. |
|
||||
|
||||
### Advanced Attributes
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:---------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` |
|
||||
| `use_original_title`<sup>1</sup> | `default`: Library default<br>`no`: No<br>`yes`: Yes |
|
||||
|
||||
1. Must be using the **New Plex Movie Agent**.
|
@ -1,138 +0,0 @@
|
||||
# Music Library Metadata
|
||||
|
||||
You can have the script edit the metadata of Artists, Albums, and Tracks by adding them to the `metadata` mapping of a Metadata File.
|
||||
|
||||
An example of multiple metadata edits in a music library is below:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
"Linkin Park":
|
||||
country: "United States of America"
|
||||
album_sorting: newest
|
||||
albums:
|
||||
"Hybrid Theory":
|
||||
originally_available: "2000-10-24"
|
||||
tracks:
|
||||
1:
|
||||
user_rating: 5
|
||||
"One Step Closer":
|
||||
user_rating: 5
|
||||
"Meteora":
|
||||
originally_available: "2003-03-25"
|
||||
album_sorting: newest
|
||||
tracks:
|
||||
9:
|
||||
user_rating: 5
|
||||
"Numb":
|
||||
user_rating: 5
|
||||
"Minutes To Midnight":
|
||||
originally_available: "2007-05-14"
|
||||
```
|
||||
|
||||
## Matching Artist
|
||||
|
||||
The `match` attribute is used to match artists within Plex to that definition within the Metadata file. One definition can match and edit multiple artists. The available matching options are outlined below.
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:-------------------------------|:-----------------------------------------------------------------------------------------------------|
|
||||
| `title`<sup>1</sup> | Only matches artists that exactly match the artist's Title. Can be a list (only one needs to match). |
|
||||
|
||||
1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching.
|
||||
|
||||
### Examples
|
||||
|
||||
Below are some examples on how artists can be matched.
|
||||
|
||||
#### Example 1 - `title`
|
||||
|
||||
The below example shows how `title` can be used to match artists.
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
artist1: # Matches via the title "Ke$ha"
|
||||
match:
|
||||
title: Ke$ha
|
||||
edits...
|
||||
artist2: # Matches via the title "311"
|
||||
match:
|
||||
title: 311
|
||||
edits...
|
||||
```
|
||||
|
||||
The Mapping Name can also be used to reduce line-count, as shown here:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
Ke$ha: # Matches via the Name "Ke$ha"
|
||||
edits...
|
||||
"311": # Matches via the Name "311"
|
||||
edits...
|
||||
```
|
||||
|
||||
## Metadata Edits
|
||||
|
||||
The available attributes for editing artists, albums, and tracks are as follows
|
||||
|
||||
### Special Attributes
|
||||
|
||||
| Attribute | Values | Artists | Album | Tracks |
|
||||
|:------------|:----------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:|
|
||||
| `albums` | Attribute used to edit album metadata. The mapping name is the album name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `tracks` | Attribute used to edit track metadata. The mapping name is the track number on that Album, or the title of the Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
* If you know of another Title your item might exist under, but you want it titled differently you can use `alt_title` to specify another title to look under and then be changed to the mapping name. For Example the Artist `Kesha` used to be stylized as `Ke$ha`, and might still be found that way in Metadata results.
|
||||
```yaml
|
||||
metadata:
|
||||
"Kesha":
|
||||
alt_title: "Ke$ha"
|
||||
```
|
||||
This would change the name of the default `Ke$ha` to `Kesha` and would not mess up any subsequent runs.
|
||||
``
|
||||
### General Attributes
|
||||
|
||||
| Attribute | Values | Artists | Album | Tracks |
|
||||
|:-----------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
|
||||
| `title` | Text to change Title. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `record_label` | Text to change Record Label. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `track` | Text to change Track. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `disc` | Text to change Disc. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `original_artist` | Text to change Original Artist. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
### Tag Attributes
|
||||
|
||||
You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`.
|
||||
|
||||
You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`.
|
||||
|
||||
| Attribute | Values | Artists | Album | Tracks |
|
||||
|:-----------------|:---------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
|
||||
| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `style` | List or comma-separated text of each Style Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `mood` | List or comma-separated text of each Mood Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `country` | List or comma-separated text of each Country Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `similar_artist` | List or comma-separated text of each Similar Artist Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
### Image Attributes
|
||||
|
||||
| Attribute | Values | Artists | Album | Tracks |
|
||||
|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:|
|
||||
| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
### Advanced Attributes
|
||||
|
||||
All these attributes only work with Artists.
|
||||
|
||||
| Attribute | Values |
|
||||
|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `album_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr><tr><td>`name`</td><td>Alphabetical</td></tr></tbody></table> |
|
@ -1,210 +0,0 @@
|
||||
# TV Show Library Metadata
|
||||
|
||||
You can have the script edit the metadata of Shows, Seasons, and Episodes by adding them to the `metadata` mapping of a Metadata File.
|
||||
|
||||
An example of multiple metadata edits in a show library is below:
|
||||
```yaml
|
||||
metadata:
|
||||
"Avatar: The Last Airbender":
|
||||
sort_title: Avatar 01
|
||||
seasons:
|
||||
1:
|
||||
title: "Book One: Water"
|
||||
summary: >-
|
||||
After a lapse of 100 years, the Avatar-spiritual master of the elements-has returned. And just in
|
||||
the nick of time. The Four Nations (Water, Earth, Fire, and Air) have become unbalanced. The Fire
|
||||
Nation wants to rule the world, and its first conquest will be the Northern Water Tribe. It's up to
|
||||
a 12-year-old Airbender named Aang to find a way to stop it. Join Aang, Katara, Sokka, Momo, and
|
||||
Appa as they head north on the adventure of a lifetime.
|
||||
episodes:
|
||||
1:
|
||||
user_rating: 9.1
|
||||
2:
|
||||
title: "Book Two: Earth"
|
||||
summary: >-
|
||||
Avatar Aang continues his quest to master the four elements before the end of summer. Together with
|
||||
Katara, Sokka, Momo, and Appa, he journeys across the Earth Kingdom in search of an Earthbending
|
||||
mentor. Along the way, he confronts Princess Azula, treacherous daughter of Firelord Ozai and
|
||||
sister to Prince Zuko. More powerful than her brother, Azula will stop nothing to defeat the Avatar.
|
||||
But Aang and the gang find plenty of Earth Kingdom allies to help them along the way. From the swamps
|
||||
of the South to the Earth King's palace, Avatar: Book 2 is an adventure like no other.
|
||||
3:
|
||||
title: "Book Three: Fire"
|
||||
summary: >-
|
||||
Having survived the terrible battle with Azula, Aang faces new challenges as he and his brave
|
||||
friends secretly enter the Fire Nation. Their quest is to find and defeat Firelord Ozai. Along
|
||||
the way, they discover that Ozai has plans of his own. The leader of the Fire Nation intends to
|
||||
use the massive power of Sozin's comet to spread his dominion permanently across the four nations.
|
||||
Short on time, Aang has a lot of bending to learn and no master to help him learn it. However, his
|
||||
friends are there to help, and he finds unexpected allies deep in the heart of the Fire Nation. In
|
||||
the spectacular four-part conclusion, Aang must fulfill his destiny and become a fully realized
|
||||
Avatar, or watch the world go up in smoke.
|
||||
episodes:
|
||||
21:
|
||||
summary: The Epic Series Final of Avatar The Last Airbender
|
||||
"Avatar: The Legend of Korra":
|
||||
match:
|
||||
title:
|
||||
- "Avatar: The Legend of Korra"
|
||||
- The Legend of Korra
|
||||
sort_title: Avatar 02
|
||||
original_title: The Legend of Korra
|
||||
seasons:
|
||||
1:
|
||||
title: "Book One: Air"
|
||||
2:
|
||||
title: "Book Two: Spirits"
|
||||
3:
|
||||
title: "Book Three: Change"
|
||||
4:
|
||||
title: "Book Four: Balance"
|
||||
```
|
||||
|
||||
## Matching Shows
|
||||
|
||||
The `match` attribute is used to match shows within Plex to that definition within the Metadata file. One definition can match and edit multiple shows. The available matching options are outlined below.
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:-------------------------------|:------------------------------------------------------------------------------------------------------------------|
|
||||
| `title`<sup>1</sup> | Only matches shows that exactly match the show's Title. Can be a list (only one needs to match). |
|
||||
| `year` | Only matches shows that were released in the given year. |
|
||||
| `mapping_id`<sup>2</sup> | Only matches shows that have the given TVDb or IMDb ID. |
|
||||
|
||||
1. When `title` is not provided and the mapping name was not specified as an ID, the default behaviour is to use the mapping name as `title` for matching.
|
||||
2. When `mapping_id` is not provided and the mapping name was specified as an ID, the default behaviour is to use the mapping name as `mapping_id` for matching.
|
||||
|
||||
### Examples
|
||||
|
||||
Below are some examples on how shows can be matched.
|
||||
|
||||
#### Example 1 - `title` and `mapping_id`
|
||||
|
||||
The below example shows how `title` and `mapping_id` can be used to match shows.
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
show1: # Matches via the title "Game of Thrones"
|
||||
match:
|
||||
title: Game of Thrones
|
||||
edits...
|
||||
show2: # Matches via TVDb ID: 366524
|
||||
match:
|
||||
mapping_id: 366524
|
||||
edits...
|
||||
show3: # Matches via IMDb ID: tt10234724
|
||||
match:
|
||||
mapping_id: tt10234724
|
||||
edits...
|
||||
show4: # Matches via the title "24"
|
||||
match:
|
||||
title: 24
|
||||
edits...
|
||||
```
|
||||
|
||||
The Mapping Name can also be used to reduce line-count, as shown here:
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
Game of Thrones: # Matches via the Name "Game of Thrones"
|
||||
edits...
|
||||
366524: # Matches via TVDb ID: 366524
|
||||
edits...
|
||||
tt10234724: # Matches via IMDb ID: tt10234724
|
||||
edits...
|
||||
"24": # Matches via the Name "24"
|
||||
edits...
|
||||
```
|
||||
|
||||
**Note:** to search for a show titled with a number from the mapping name you must surround the number in quotes like in the example below. Otherwise, it will look for the show associated with that TVDb ID.
|
||||
|
||||
#### Example 2 - `title` and `year`
|
||||
|
||||
The below example shows how `title` and `year` can be used to match shows.
|
||||
|
||||
In this example, there are two shows in the library called "Vikings", so the `year` attribute is used to identify which show is being matched.
|
||||
|
||||
```yaml
|
||||
metadata:
|
||||
Vikings (2012): # Matches via the title "Vikings" released in 2012
|
||||
match:
|
||||
title: Vikings
|
||||
year: 2012
|
||||
edits...
|
||||
Vikings (2013): # Matches via the title "Vikings" released in 2013
|
||||
match:
|
||||
title: Vikings
|
||||
year: 2013
|
||||
edits...
|
||||
```
|
||||
|
||||
## Metadata Edits
|
||||
|
||||
The available attributes for editing shows, seasons, and episodes are as follows
|
||||
|
||||
### Special Attributes
|
||||
|
||||
| Attribute | Description | Shows | Seasons | Episodes |
|
||||
|:------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:----------------------------------------:|
|
||||
| `f1_season` | F1 Season Year to make the Show represent a Season of F1 Races. See [Formula 1 Metadata Guide](../../../pmm/install/guides/formula.md) for more information. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `round_prefix` | Used only with `f1_season` to add the round as a prefix to the Season (Race) Titles i.e. `Australian Grand Prix` --> `01 - Australian Grand Prix`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `shorten_gp` | Used only with `f1_season` to shorten `Grand Prix` to `GP` in the Season (Race) Titles i.e. `Australian Grand Prix` --> `Australian GP`. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `seasons` | Attribute used to edit season metadata. The mapping name is the season number (use 0 for specials) or the season name. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `episodes` | Attribute used to edit episode metadata. The mapping name is the episode number in that season, the title of the episode, or the Originally Available date in the format `MM/DD`. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `run_definition` | Used to specify if this definition runs.<br>Multiple can be used for one definition as a list or comma separated string. One `false` or unmatched library type will cause it to fail.<br>**Values:** `movie`, `show`, `artist`, `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `update_seasons` | Used to specify if this definition's seasons metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `update_episodes` | Used to specify if this definition's episodes metadata will update.<br>Multiple can be used for one definition as a list or comma separated string. One `false` will cause it to fail.<br>**Values:** `true`, `false` | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
### General Attributes
|
||||
|
||||
| Attribute | Allowed Values | Shows | Seasons | Episodes |
|
||||
|:-----------------------|:---------------------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
|
||||
| `title` | Text to change Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `sort_title` | Text to change Sort Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `original_title` | Text to change Original Title. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `originally_available` | Date to change Originally Available.<br>**Format:** YYYY-MM-DD | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `content_rating` | Text to change Content Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `user_rating` | Number to change User Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `audience_rating` | Number to change Audience Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `critic_rating` | Number to change Critic Rating. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `studio` | Text to change Studio. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `tagline` | Text to change Tagline. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `summary` | Text to change Summary. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
|
||||
### Tag Attributes
|
||||
|
||||
You can add `.remove` to any tag attribute to only remove those tags i.e. `genre.remove`.
|
||||
|
||||
You can add `.sync` to any tag attribute to sync all tags vs just appending the new ones i.e. `genre.sync`.
|
||||
|
||||
| Attribute | Allowed Values | Shows | Seasons | Episodes |
|
||||
|:-------------|:-----------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
|
||||
| `director` | List or comma-separated text of each Director Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `genre` | List or comma-separated text of each Genre Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `writer` | List or comma-separated text of each Writer Tag. | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-xmark:{ .red } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `collection` | List or comma-separated text of each Collection Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `label` | List or comma-separated text of each Label Tag. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
|
||||
### Image Attributes
|
||||
|
||||
| Attribute | Allowed Values | Shows | Seasons | Episodes |
|
||||
|:------------------|:-------------------------------------------------|:------------------------------------------:|:------------------------------------------:|:------------------------------------------:|
|
||||
| `url_poster` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `file_poster` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `url_background` | URL of image publicly available on the internet. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `file_background` | Path to image in the file system. | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } | :fontawesome-solid-circle-check:{ .green } |
|
||||
|
||||
### Advanced Attributes
|
||||
|
||||
All these attributes only work with Shows.
|
||||
|
||||
| Attribute | Allowed Values |
|
||||
|:---------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `episode_sorting` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`oldest`</td><td>Oldest first</td></tr><tr><td>`newest`</td><td>Newest first</td></tr></tbody></table> |
|
||||
| `keep_episodes` | <table class="clearTable"><tbody><tr><td>`all`</td><td>All episodes</td></tr><tr><td>`5_latest`</td><td>5 latest episodes</td></tr><tr><td>`3_latest`</td><td>3 latest episodes</td></tr><tr><td>`latest`</td><td>Latest episodes</td></tr><tr><td>`past_3`</td><td>Episodes added in the past 3 days</td></tr><tr><td>`past_7`</td><td>Episodes added in the past 7 days</td></tr><tr><td>`past_30`</td><td>Episodes added in the past 30 days</td></tr></tbody></table> |
|
||||
| `delete_episodes` | <table class="clearTable"><tbody><tr><td>`never`</td><td>Never</td></tr><tr><td>`day`</td><td>After a day</td></tr><tr><td>`week`</td><td>After a week</td></tr><tr><td>`refresh`</td><td>On next refresh</td></tr></tbody></table> |
|
||||
| `season_display` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`show`</td><td>Show</td></tr><tr><td>`hide`</td><td>Hide</td></tr></tbody></table> |
|
||||
| `episode_ordering` | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`tmdb_aired`</td><td>The Movie Database (Aired)</td></tr><tr><td>`tvdb_aired`</td><td>TheTVDb (Aired)</td></tr><tr><td>`tvdb_dvd`</td><td>TheTVDb (DVD)</td></tr><tr><td>`tvdb_absolute`</td><td>TheTVDb (Absolute)</td></tr></tbody></table> |
|
||||
| `metadata_language`<sup>1</sup> | `default`, `ar-SA`, `ca-ES`, `cs-CZ`, `da-DK`, `de-DE`, `el-GR`, `en-AU`, `en-CA`, `en-GB`, `en-US`, `es-ES`, `es-MX`, `et-EE`, `fa-IR`, `fi-FI`, `fr-CA`, `fr-FR`, `he-IL`, `hi-IN`, `hu-HU`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lt-LT`, `lv-LV`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-BR`, `pt-PT`, `ro-RO`, `ru-RU`, `sk-SK`, `sv-SE`, `th-TH`, `tr-TR`, `uk-UA`, `vi-VN`, `zh-CN`, `zh-HK`, `zh-TW` |
|
||||
| `use_original_title`<sup>1</sup> | <table class="clearTable"><tbody><tr><td>`default`</td><td>Library default</td></tr><tr><td>`no`</td><td>No</td></tr><tr><td>`yes`</td><td>Yes</td></tr></tbody></table> |
|
||||
|
||||
1. Must be using the **New Plex TV Agent**
|
@ -1,139 +0,0 @@
|
||||
# Playlist Files
|
||||
|
||||
Playlist files are used to create and maintain playlists on the Plex Server.
|
||||
|
||||
If utilized to their fullest, these files can be used to maintain the entire server's collections and playlists, and can be used as a backup for these in the event of a restore requirement.
|
||||
|
||||
???+ tip
|
||||
|
||||
Playlists are defined in one or more Playlist files that are mapped in the [Playlist Files Attribute](../playlists.md) within the Configuration File.
|
||||
|
||||
You can use the [`playlist_report` setting](../settings.md#playlist-report) to get a list of your playlists printed out in your log.
|
||||
|
||||
## Example
|
||||
|
||||
This example is a Playlist file with a basic overlay which is saved in a file called `MyPlaylists.yml` within the location mapped as `config` in my setup.
|
||||
|
||||
|
||||
???+ example "Example "MyPlaylists.yml""
|
||||
|
||||
Click the :fontawesome-solid-circle-plus: icon to learn more
|
||||
|
||||
```yaml
|
||||
collections: #(1)!
|
||||
Top 50 Grossing Films of All Time (Worldwide):
|
||||
tmdb_list: 10 #(2)!
|
||||
collection_order: custom #(3)!
|
||||
sync_mode: sync #(4)!
|
||||
```
|
||||
|
||||
1. This must appear once and **only once** in any Metadata file
|
||||
2. This creates a collection based on tmdb list ID 10, https://www.themoviedb.org/list/10 would also be accepted
|
||||
3. This will sort the items in the Plex collection to be the same as the order in the list
|
||||
4. Syncs the collection to the list, so that if an item is added/removed from the list, the same is done to the collection. Set this to `append` if you only want it to add things and not remove them.
|
||||
|
||||
???+ example "config.yml Example Collection File Addition"
|
||||
|
||||
Click the :fontawesome-solid-circle-plus: icon to learn more
|
||||
|
||||
```yaml
|
||||
playlists: #(1)!
|
||||
Marvel Cinematic Universe Chronological Order:
|
||||
sync_mode: sync
|
||||
libraries: Movies, TV Shows #(2)!
|
||||
sync_to_users: User1, someone@somewhere.com, User3 #(3)!
|
||||
trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe
|
||||
summary: Marvel Cinematic Universe In Chronological Order
|
||||
```
|
||||
|
||||
1. This must appear once and **only once** in any Playlist file
|
||||
2. These libraries must exist in your Plex library
|
||||
3. Leave this blank if you only only want the Playlist to sync to the server owner's account
|
||||
|
||||
This file would then be defined in my `config.yml` file as a `playlist_files` item:
|
||||
|
||||
???+ warning "Important Note"
|
||||
|
||||
Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see in the below example.
|
||||
|
||||
???+ example "config.yml Example Playlists Addition"
|
||||
|
||||
Click the :fontawesome-solid-circle-plus: icon to learn more
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
# Metadata and Overlay files here
|
||||
TV Shows:
|
||||
# Metadata and Overlay files here
|
||||
playlist_files: #(1)!
|
||||
- file: config/MyPlaylists.yml #(2)!
|
||||
```
|
||||
|
||||
1. Note that Playlist files are not called within the `libraries` section, they are defined at the root identation as you can see here
|
||||
2. `config` refers to the location that you mapped to `config` when following the PMM Installation Guides.
|
||||
|
||||
## Playlist Attributes
|
||||
|
||||
Plex Meta Manager can automatically build and update playlists defined within the `playlists` attribute.
|
||||
|
||||
These are the attributes which can be utilized within the Playlist File:
|
||||
|
||||
| Attribute | Description |
|
||||
|:-----------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [`templates`](../../builders/templates.md) | contains definitions of templates that can be leveraged by multiple playlists |
|
||||
| [`external_templates`](../../builders/templates.md#external-templates) | contains [path types](../../builders/files.md#paths) that point to external templates that can be leveraged by multiple playlists |
|
||||
| [`playlists`](#playlist-attributes) | contains definitions of playlists you wish to add to the server |
|
||||
|
||||
* `playlists` is required in order to run the Playlist File.
|
||||
* You can find example Playlist Files in the [Plex Meta Manager Configs Repository](https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/PMM)
|
||||
* Plex does not support the "Continue Watching" feature for playlists, you can [vote for the feature here](https://forums.plex.tv/t/playlists-remember-position-for-subsequent-resume/84866/39)
|
||||
|
||||
|
||||
Each playlist requires its own section within the `playlists` attribute and unlike collections, playlists can only be built using one Builder as their ordering is inherited from the builder; it is not possible to combine builders.
|
||||
|
||||
```yaml
|
||||
playlists:
|
||||
Marvel Cinematic Universe Chronological Order:
|
||||
# ... builder, details, and filters for this playlist
|
||||
Star Wars Clone Wars Chronological Order:
|
||||
# ... builder, details, and filters for this playlist
|
||||
etc:
|
||||
# ... builder, details, and filters for this playlist
|
||||
```
|
||||
|
||||
There are multiple types of attributes that can be utilized within a playlist:
|
||||
|
||||
* [Builders](../../builders/overview.md)
|
||||
* [Settings/Updates](../../metadata/update.md)[update.md]
|
||||
* [Filters](../../builders/filters.md)
|
||||
|
||||
### Special Playlist Attributes
|
||||
|
||||
| Attribute | Description | Required |
|
||||
|:------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------:|
|
||||
| `libraries` | Determine which libraries the playlist will be built from.<br>**Options:** Comma-separated string or list of library mapping names defined in the `libraries` attribute in the base of your [Configuration File](../configuration.md. | :fontawesome-solid-circle-check:{ .green } |
|
||||
| `sync_to_users` | Determine which Users have the playlist synced.<br>This will override the global [`playlist_sync_to_users` Setting](../settings.md#playlist-sync-to-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `exclude_users` | Determine which Users will be excluded from having the playlist synced.<br>This will override the global [`playlist_excude_users` Setting](../settings.md#playlist-exclude-users).<br>**Options:** Comma-separated string or list of users, `all` for every user who has server access, or leave blank for just the server owner. | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| `delete_playlist` | Will delete this playlist for the users defined by sync_to_users.<br>**Options:** `true` or `false` | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
* Any defined playlist will be always be visible by The Plex Media Server owner, so it doesn't need to be defined within `sync_to_users`.
|
||||
|
||||
## Example Playlists
|
||||
|
||||
In the following example, media is pulled from the `Movies` and `TV Shows` libraries into the one Playlist, and the playlist is shared with a specific set of users:
|
||||
|
||||
```yaml
|
||||
playlists:
|
||||
Marvel Cinematic Universe Chronological Order:
|
||||
sync_mode: sync
|
||||
libraries: Movies, TV Shows
|
||||
sync_to_users: User1, someone@somewhere.com, User3
|
||||
trakt_list: https://trakt.tv/users/donxy/lists/marvel-cinematic-universe?sort=rank,asc
|
||||
summary: Marvel Cinematic Universe In Chronological Order
|
||||
Star Wars Clone Wars Chronological Order:
|
||||
sync_to_users: all
|
||||
sync_mode: sync
|
||||
libraries: Movies, TV Shows
|
||||
trakt_list: https://trakt.tv/users/tomfin46/lists/star-wars-the-clone-wars-chronological-episode-order
|
||||
```
|
@ -0,0 +1,49 @@
|
||||
Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your
|
||||
libraries.
|
||||
|
||||
Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and
|
||||
metadata but also serve as a crucial backup resource in case a restore is necessary.
|
||||
|
||||
These are the File types that can be utilized against Plex servers:
|
||||
|
||||
| File Type | Description | Parent Attribute |
|
||||
|:--------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------|:--------------------:|
|
||||
| [Collection Files](../files/collections.md) | Defines the data for building collections, allowing you to group and showcase your library in unique ways. | `collection_files` |
|
||||
| [Overlay Files](../files/overlays.md) | Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters. | `overlay_files` |
|
||||
| [Metadata Files](../files/metadata.md) | Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library. | `metadata_files` |
|
||||
| [Playlist Files](../files/playlists.md) | Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server. | `playlist_files` |
|
||||
| [Template Files](../files/templates.md) | Defines templates in external files, allowing you to use the same templates across multiple other files. | `external_templates` |
|
||||
|
||||
??? example "Example File Blocks (click to expand)"
|
||||
|
||||
In this example, multiple file blocks are defined for the `"TV Shows"` library:
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
TV Shows:
|
||||
collection_files:
|
||||
- file: config/TVShows.yml
|
||||
- folder: config/TV Shows/
|
||||
overlay_files:
|
||||
- pmm: imdb
|
||||
- repo: overlays
|
||||
playlist_files:
|
||||
- url: https://somewhere.com/Playlists.yml
|
||||
```
|
||||
|
||||
**Unlike the others, Playlist Files are not defined per-library.**
|
||||
|
||||
Within the above example, PMM will:
|
||||
|
||||
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named
|
||||
`TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
|
||||
|
||||
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and
|
||||
then load any collection files within that directory.
|
||||
|
||||
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within
|
||||
the local PMM folder [or docker container] for a file called `imdb.yml`.
|
||||
|
||||
* Then, look within the Custom Defined Repo for a file called `overlays.yml`.
|
||||
|
||||
* Finally, load the playlist file located at `https://somewhere.com/Playlists.yml`
|
@ -1,3 +1,259 @@
|
||||
# File Blocks
|
||||
|
||||
When using Plex Meta Manager, the structure of each library is made using File Blocks
|
||||
|
||||
???+ example "Example Library Structure"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- pmm: imdb
|
||||
```
|
||||
|
||||
In the above example, `collection_files` is the type of File, which tells PMM that the entries that follow will
|
||||
create/update collections and `- pmm:` is the type of Path, which PMM that the file it is looking for is a PMM
|
||||
Defaults file.
|
||||
|
||||
These ideas will be further outlined on this page.
|
||||
|
||||
## Files
|
||||
|
||||
{%
|
||||
include-markdown "./files_paths.md"
|
||||
include-markdown "./file_types.md"
|
||||
%}
|
||||
|
||||
## Blocks
|
||||
|
||||
Each time a file is called it's going to use what we call a "File Block". Each block must have the file location type
|
||||
and path and can have other attributes to add more control to that file.
|
||||
|
||||
Every file block under the parent attribute begins with a `-`.
|
||||
|
||||
???+ example "Example Block"
|
||||
|
||||
This example has 2 blocks each using location type `pmm` with the path being `tmdb` and `imdb` respectively under
|
||||
the parent attribute `collection_files`.
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files: # Parent Attribute
|
||||
- pmm: tmdb # Block 1
|
||||
- pmm: imdb # Block 2
|
||||
```
|
||||
|
||||
### Location Types and Paths
|
||||
|
||||
There are multiple location types that can be used to call a file. They can either be on the local system, online at an
|
||||
url, part of the [PMM Defaults](../defaults/guide.md), directly from the
|
||||
[PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository, or from another
|
||||
[`Custom Repository`](settings.md).
|
||||
|
||||
The location types are outlined as follows:
|
||||
|
||||
??? blank "`file` - Used to run a local file.<a class="headerlink" href="#file" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="file" />Used to run a file which is located within the system that PMM is being run from.
|
||||
|
||||
File locations need to be accessible to PMM at those paths; this is typically only something you need to consider
|
||||
when using Docker.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/path/to/file.yml
|
||||
```
|
||||
|
||||
??? blank "`folder` - Used to run all local files in a directory.<a class="headerlink" href="#folder" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="folder" />Used to run all files located in a directory which is located within the system that PMM is being
|
||||
run from.
|
||||
|
||||
Folder locations need to be accessible to PMM at those paths; this is typically only something you need to consider
|
||||
when using Docker.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- folder: config/path/to/folder
|
||||
```
|
||||
|
||||
??? blank "`url` - Used to run a file hosted at a URL.<a class="headerlink" href="#url" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="url" />Used to run a file hosted publicly on the internet and accessible at a URL.
|
||||
|
||||
This needs to point directly to the YAML file. A common error is using a gitHub link that points to the *page
|
||||
displaying the YAML*. In gitHub, for instance, click on the "Raw" button and use *that* link.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- url: https://example.com/path/to/file.yml
|
||||
```
|
||||
|
||||
??? blank "`pmm` - Used to run a built-in [PMM Defaults](../defaults/guide.md) file.<a class="headerlink" href="#pmm" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="pmm" />Used to run a built-in PMM Defaults file. The values you'd enter here are listed in the
|
||||
[default usage guide](../defaults/guide.md).
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- pmm: oscars
|
||||
```
|
||||
|
||||
??? blank "`git` - Used to run a file hosted on the [PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository.<a class="headerlink" href="#git" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="git" />Used to run a file hosted on the
|
||||
[PMM User Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository.
|
||||
|
||||
Note that you enter the bits of the items path relative to the top level of the repo [`meisnate12/People`] and you
|
||||
don't need the `.yml` extension.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- git: meisnate12/People # this links to https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/meisnate12/People.yml
|
||||
```
|
||||
|
||||
??? blank "`repo` - Used to run a file hosted on a custom repository.<a class="headerlink" href="#repo" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="repo" />Used to run a file which is hosted on a repo specified by the user with the
|
||||
[`custom_repo`](settings.md#custom-repo) Setting Attribute.
|
||||
|
||||
Note that as with `git` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't
|
||||
need the `.yml` extension.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
This is assuming the `custom_repo` setting is
|
||||
`https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12`.
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- repo: People
|
||||
```
|
||||
|
||||
## Other Block Attributes
|
||||
|
||||
You can have some control of the files from inside your Configuration file by using these block attributes.
|
||||
|
||||
??? blank "`template_variables` - Used to define [Custom Template Variables](../files/templates.md#template-variables) for a file.<a class="headerlink" href="#template-variables" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="template-variables" />Passes all given [Template Variables](../files/templates.md#template-variables) to
|
||||
every template in the file.
|
||||
|
||||
**Note: the file has to be properly set up to use the variables.**
|
||||
|
||||
<hr style="margin: 0px;">
|
||||
|
||||
**Attribute:** `template_variables`
|
||||
|
||||
**Accepted Values:** [Dictionary](../pmm/yaml.md#dictionaries) of values specified by each particular file.
|
||||
|
||||
**Default Value:** `None`
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
TV Shows:
|
||||
collection_files:
|
||||
- pmm: genre
|
||||
template_variables:
|
||||
schedule_separator: never
|
||||
collection_mode: hide
|
||||
- pmm: actor # Notice how the `-` starts this block
|
||||
template_variables:
|
||||
schedule_separator: never
|
||||
collection_mode: hide
|
||||
```
|
||||
|
||||
In this example there will be two template variables added to every template in the git file pmm: genre.
|
||||
|
||||
`schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to
|
||||
`hide`.
|
||||
|
||||
What these variables will do depends on how they're defined in the Collection File.
|
||||
|
||||
??? blank "`schedule` - Used to schedule when a file is run.<a class="headerlink" href="#schedule" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule" />Used to schedule when this file is run using the [schedule options](schedule.md).
|
||||
|
||||
<hr style="margin: 0px;">
|
||||
|
||||
**Attribute:** `schedule`
|
||||
|
||||
**Accepted Values:** Any [schedule option](schedule.md)
|
||||
|
||||
**Default Value:** `daily`
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
schedule: weekly(friday)
|
||||
- pmm: actors
|
||||
schedule: weekly(saturday)
|
||||
playlist_files:
|
||||
- file: config/Playlists.yml
|
||||
schedule: weekly(sunday)
|
||||
```
|
||||
|
||||
??? blank "`asset_directory` - Used to define Asset Directories for a file.<a class="headerlink" href="#asset-directory" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="asset-directory" />Specify the directory where assets (posters, backgrounds, etc) are located for this
|
||||
specific file.
|
||||
|
||||
???+ tip
|
||||
|
||||
Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory
|
||||
must be mounted/visible to the docker container).
|
||||
|
||||
<hr style="margin: 0px;">
|
||||
|
||||
**Attribute:** `asset_directory`
|
||||
|
||||
**Accepted Values:** Any directory
|
||||
|
||||
**Default Value:** `[Directory containing YAML config]/assets`
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
asset_directory: <path_to_assets>/Movies
|
||||
- pmm: actors
|
||||
asset_directory: <path_to_assets>/people
|
||||
overlay_files:
|
||||
- pmm: imdb
|
||||
playlist_files:
|
||||
- file: config/Playlists.yml
|
||||
asset_directory:
|
||||
- <path_to_assets>/playlists1
|
||||
- <path_to_assets>/playlists2
|
||||
```
|
||||
|
@ -1,299 +0,0 @@
|
||||
# Files & Paths
|
||||
|
||||
When using Plex Meta Manager, the structure of each library is made up of Files and Paths
|
||||
|
||||
???+ example "Example Library Structure"
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- pmm: imdb
|
||||
```
|
||||
|
||||
In the above example, `collection_files` is the type of File, which tells PMM that the entries that follow will create/update collections and `- pmm:` is the type of Path, which PMM that the file it is looking for is a PMM Defaults file.
|
||||
|
||||
These ideas will be further outlined on this page.
|
||||
|
||||
## Files
|
||||
|
||||
Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your libraries.
|
||||
|
||||
Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and metadata but also serve as a crucial backup resource in case a restore is necessary.
|
||||
|
||||
There are four main File types that can be utilized against Plex servers:
|
||||
|
||||
| File Type | Description |
|
||||
|:-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| [Collection Files](data/collections.md) | Defines the data for building collections, allowing you to group and showcase your library in unique ways |
|
||||
| [Overlay Files](data/overlays.md) | Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters. |
|
||||
| Metadata Files ([Movies](data/metadata/movie.md)/[Shows](data/metadata/show.md)/[Music](data/metadata/music.md)) | Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library. |
|
||||
| [Playlist Files](data/playlists.md) | Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server |
|
||||
|
||||
Collection, Overlay and Metadata Files can be linked to libraries in the [Libraries Attribute](libraries) within the [Configuration File](../config/configuration.md).
|
||||
|
||||
## Example Files
|
||||
|
||||
This is a basic Files structure showing the use of all four File types.
|
||||
|
||||
???+ example "Example Files"
|
||||
|
||||
Unlike the other three, Playlist Files are not defined per-library.
|
||||
|
||||
Theis examples utilizes the [PMM Defaults](../defaults/files.md)
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- pmm: imdb
|
||||
overlay_files:
|
||||
- pmm: resolution
|
||||
metadata_files:
|
||||
- file: config/metadata.yml
|
||||
playlist_files:
|
||||
- pmm: playlists
|
||||
```
|
||||
|
||||
# Paths
|
||||
|
||||
YAML Files are defined by their path type and path location for the [`collection_files`](libraries.md#collection-file), [`overlay_files`](libraries.md#overlay-file), [`playlist_files`](data/playlists), and [`external_templates`](../builders/templates).
|
||||
|
||||
They can either be on the local system, online at an url, directly from the [Plex Meta Manager Configs](https://github.com/meisnate12/Plex-Meta-Manager-Configs) repository, or from another [`Custom Repository`](settings.md#custom-repo).
|
||||
|
||||
The path types are outlined as follows:
|
||||
|
||||
* `- file:` refers to a collection file which is located within the system that PMM is being run from.
|
||||
|
||||
* `- folder:` refers to a directory containing collection files which is located within the system that PMM is being run from.
|
||||
|
||||
* `- pmm:` refers to a [PMM Defaults](../defaults/files.md) builders/overlay/playlist file.
|
||||
|
||||
* `- url:` refers to a collection file which is hosted publicly on the internet.
|
||||
|
||||
* `- git:` refers to a collection file which is hosted on the [Configs Repo](https://github.com/meisnate12/Plex-Meta-Manager-Configs).
|
||||
|
||||
* `- repo:` refers to a collection file which is hosted on a custom repository specified by the user with the [`custom_repo` Setting Attribute](settings.md#custom-repo).
|
||||
|
||||
## Example Paths
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/path/to/file.yml
|
||||
- folder: config/path/to/folder
|
||||
```
|
||||
File and folder paths need to be accessible to PMM at those paths; this is typically only something you need to consider when using Docker.
|
||||
```
|
||||
- url: https://example.com/path/to/file.yml
|
||||
```
|
||||
This needs to point directly to the YAML file. A common error is using a gitHub link that points to the *page displaying the YAML*. In gitHub, for instance, click on the "Raw" button and use *that* link.
|
||||
```
|
||||
- git: meisnate12/People # this links to https://github.com/meisnate12/Plex-Meta-Manager-Configs/blob/master/meisnate12/People.yml
|
||||
```
|
||||
Note that you enter the bits of the items path relative to the top level of the repo [`meisnate12/People`] and you don't need the `.yml` extension.
|
||||
```
|
||||
- repo: People
|
||||
```
|
||||
This is assuming the `custom_repo` setting is `https://github.com/meisnate12/Plex-Meta-Manager-Configs/tree/master/meisnate12`
|
||||
Note that as with `- git:` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't need the `.yml` extension.
|
||||
Note that as with `- git:` you enter the bits of the items path relative to repo [`meisnate12/People`] and you don't need the `.yml` extension.
|
||||
```
|
||||
- pmm: oscars
|
||||
```
|
||||
The values you'd enter here are listed in the [default metadata guide](../defaults/guide.md).
|
||||
|
||||
## YAML Controls
|
||||
|
||||
You can have some control of yaml files from inside your Configuration file by using YAML Controls.
|
||||
|
||||
### Template Variables
|
||||
|
||||
You can define [Template Variables](../builders/templates.md#template-variables) that will be added to every template in the associated YAML file by adding the `template_variables` attribute to the dictionary defining the file.
|
||||
|
||||
#### Example
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
TV Shows:
|
||||
collection_files:
|
||||
- pmm: genre
|
||||
template_variables:
|
||||
schedule_separator: never
|
||||
collection_mode: hide
|
||||
- pmm: actor # Notice how the `-` starts this "section"
|
||||
template_variables:
|
||||
schedule_separator: never
|
||||
collection_mode: hide
|
||||
```
|
||||
|
||||
In this example there will be two template variables added to every template in the git file pmm: genre.
|
||||
|
||||
`schedule_separator` is set to `never` to not show a separator in this section and `collection_mode` is set to `hide`.
|
||||
|
||||
What these variables will do depends on how they're defined in the Collection File.
|
||||
|
||||
### Schedule
|
||||
|
||||
Each [`collection_files`](libraries.md#collection-file), [`overlay_files`](libraries.md#overlay-file), or [`playlist_files`](data/playlists) can be scheduled by adding the `schedule` attribute to the dictionary defining the file.
|
||||
|
||||
Below is an example of a scheduled Collection File and Playlist File:
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
schedule: weekly(friday)
|
||||
- pmm: actors
|
||||
schedule: weekly(saturday)
|
||||
playlist_files:
|
||||
- file: config/Playlists.yml
|
||||
schedule: weekly(sunday)
|
||||
```
|
||||
|
||||
### Asset Directory
|
||||
|
||||
You can define custom Asset Directories per file by adding `asset_directory` to the file call.
|
||||
|
||||
???+ important
|
||||
|
||||
Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container).
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
asset_directory: <path_to_assets>/Movies
|
||||
- pmm: actors
|
||||
asset_directory: <path_to_assets>/people
|
||||
overlay_files:
|
||||
- pmm: imdb
|
||||
playlist_files:
|
||||
- file: config/Playlists.yml
|
||||
asset_directory:
|
||||
- <path_to_assets>/playlists1
|
||||
- <path_to_assets>/playlists2
|
||||
```
|
||||
|
||||
## Collection File
|
||||
|
||||
The [`collection_files`](libraries.md#collection-file) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md).
|
||||
|
||||
??? example
|
||||
|
||||
In this example, multiple collection file path types are defined for the `"TV Shows"` library:
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
TV Shows:
|
||||
collection_files:
|
||||
- file: config/TVShows.yml
|
||||
- folder: config/TV Shows/
|
||||
- pmm: tmdb
|
||||
- repo: charts
|
||||
- url: https://somewhere.com/PopularTV.yml
|
||||
```
|
||||
|
||||
Within the above example, PMM will:
|
||||
|
||||
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named `TVShows.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
|
||||
|
||||
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `TV Shows`, and then load any collection files within that directory.
|
||||
|
||||
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `tmdb.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/chart/tmdb.yml).
|
||||
|
||||
* Then, look within the Custom Defined Repo for a file called `charts.yml`.
|
||||
|
||||
* Finally, load the collection file located at `https://somewhere.com/PopularTV.yml`
|
||||
|
||||
## Overlay File
|
||||
|
||||
The [`overlay_files`](libraries.md#overlay-file) attribute is defined under the [`libraries`](libraries.md) attribute in your [Configuration File](configuration.md).
|
||||
|
||||
??? example
|
||||
|
||||
In this example, multiple overlay file path types are defined for the `"TV Shows"` library:
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
TV Shows:
|
||||
overlay_files:
|
||||
- file: config/overlays.yml
|
||||
- folder: config/overlay configs/
|
||||
- pmm: imdb
|
||||
- repo: overlays
|
||||
- url: https://somewhere.com/Overlays.yml
|
||||
```
|
||||
|
||||
Within the above example, PMM will:
|
||||
|
||||
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named `overlays.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
|
||||
|
||||
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `overlay configs`, and then load any collection files within that directory.
|
||||
|
||||
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `imdb.yml`.
|
||||
|
||||
* Then, look within the Custom Defined Repo for a file called `overlays.yml`.
|
||||
|
||||
* Finally, load the collection file located at `https://somewhere.com/Overlays.yml`
|
||||
|
||||
## Playlist Files
|
||||
|
||||
The [`playlist_files`](data/playlists.md) at the top level in your [Configuration File](configuration.md).
|
||||
|
||||
??? example
|
||||
|
||||
In this example, multiple `playlist_files` attribute path types are defined:
|
||||
|
||||
```yaml
|
||||
playlist_files:
|
||||
- file: config/playlists.yml
|
||||
- folder: config/Playlists/
|
||||
- pmm: playlist
|
||||
- repo: playlists
|
||||
- url: https://somewhere.com/Playlists.yml
|
||||
```
|
||||
|
||||
Within the above example, PMM will:
|
||||
|
||||
* First, look within the root of the PMM directory (also known as `config/`) for a playlist file named `Playlists.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
|
||||
|
||||
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `Playlists`, and then load any playlist files within that directory.
|
||||
|
||||
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `playlist.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/playlist.yml).
|
||||
|
||||
* Then, look within the Custom Defined Repo for a file called `playlists.yml`.
|
||||
|
||||
* Finally, load the playlist file located at `https://somewhere.com/Playlists.yml`
|
||||
|
||||
## External Templates
|
||||
|
||||
The [`external_templates`](../builders/templates.md#external-templates) attribute is defined at the top level in your [Collection File](data/collections.md).
|
||||
|
||||
??? example
|
||||
|
||||
In this example, multiple external template file path types are defined:
|
||||
|
||||
```yaml
|
||||
external_templates:
|
||||
- file: config/templates.yml
|
||||
- folder: config/templates/
|
||||
- url: https://somewhere.com/templates.yml
|
||||
- pmm: templates
|
||||
- repo: templates
|
||||
```
|
||||
|
||||
Within the above example, PMM will:
|
||||
|
||||
* First, look within the root of the PMM directory (also known as `config/`) for a collection file named `templates.yml`. If this file does not exist, PMM will skip the entry and move to the next one in the list.
|
||||
|
||||
* Then, look within the root of the PMM directory (also known as `config/`) for a directory called `templates`, and then load any collection files within that directory.
|
||||
|
||||
* Then, load the collection file located at `https://somewhere.com/templates.yml`.
|
||||
|
||||
* Then, look in the [defaults folder](https://github.com/meisnate12/Plex-Meta-Manager/tree/master/defaults) within the local PMM folder [or docker container] for a file called `templates.yml` which it finds [here](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/defaults/templates.yml).
|
||||
|
||||
* Finally, look at the within the Custom Defined Repo for a file called `templates.yml`.
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
@ -0,0 +1,42 @@
|
||||
# Config File
|
||||
|
||||
Plex Meta Manager uses a YAML configuration file; this file contains settings that determine how Plex Meta Manager
|
||||
behaves, and the required connection details needed to connect to Plex Media Server, Radarr, Sonarr, and other
|
||||
third-party services via API.
|
||||
|
||||
By default, and unless otherwise stated, Plex Meta Manager looks for the configuration file at `/config/config.yml`.
|
||||
|
||||
A template Configuration File can be found in the
|
||||
[GitHub Repo](https://github.com/meisnate12/Plex-Meta-Manager/blob/master/config/config.yml.template).
|
||||
|
||||
This table outlines the third-party services that Plex Meta Manager can make use of. Each service has specific
|
||||
requirements for setup that can be found by clicking the links within the table.
|
||||
|
||||
| Attribute | Required |
|
||||
|:--------------------------------------------|:----------------------------------------------------------------------|
|
||||
| [`libraries`](libraries.md) | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [`playlist_files`](../notused/playlists.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`settings`](settings.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`webhooks`](webhooks.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`plex`](plex.md) | :fontawesome-solid-circle-check:{ .green } Either here or per library |
|
||||
| [`tmdb`](tmdb.md) | :fontawesome-solid-circle-check:{ .green } |
|
||||
| [`github`](github.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`tautulli`](tautulli.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`omdb`](omdb.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`notifiarr`](notifiarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`anidb`](anidb.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`radarr`](radarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`sonarr`](sonarr.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`trakt`](trakt.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
| [`mal`](myanimelist.md) | :fontawesome-solid-circle-xmark:{ .red } |
|
||||
|
||||
## Configuration File Example
|
||||
|
||||
This example outlines what a "standard" config.yml file might look like when in use.
|
||||
|
||||
~~~yaml
|
||||
{%
|
||||
include-markdown "../../config/config.yml.template"
|
||||
comments=false
|
||||
%}
|
||||
~~~
|
@ -0,0 +1,191 @@
|
||||
# Scheduling Parts of PMM
|
||||
|
||||
Plex Meta Manager allows you to schedule libraries, files, overlays, operations, and more so that runs can be tailored
|
||||
to suit your needs.
|
||||
|
||||
This is particularly handy for users who have a lot of libraries or run a lot of Metadata/Operations on their libraries.
|
||||
|
||||
### IMPORTANT:
|
||||
|
||||
These schedules do not trigger PMM to run; they control what PMM will do if it happens to be running at the scheduled
|
||||
time. `weekly(sunday)`, for example, does not mean "run PMM on Sunday to do this thing"; it means "If PMM is running,
|
||||
and it's Sunday, do this thing".
|
||||
|
||||
The scheduling options are:
|
||||
|
||||
| Name | Description | Format | Example |
|
||||
|:-------------|:--------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------|:---------------------------------------------------------------------|
|
||||
| Hourly | Update only when the script is run in that hour or hour range | hourly(Hour of Day)<br>hourly(Start Hour-End Hour) | `hourly(17)`<br>`hourly(17-04)` |
|
||||
| Daily | Update once a day | daily | `daily` |
|
||||
| Weekly | Update once a week on the specified days (For multiple days, use a bar-separated (<code>|</code>) list) | weekly(Days of Week) | `weekly(sunday)`<br><code>weekly(sunday|tuesday)</code> |
|
||||
| Monthly | Update once a month on the specified day | monthly(Day of Month) | `monthly(1)` |
|
||||
| Yearly | Update once a year on the specified day | yearly(MM/DD) | `yearly(01/30)` |
|
||||
| Range | Updates whenever the date is within the range (For multiple ranges, use a bar-separated (<code>|</code>) list) | range(MM/DD-MM/DD) | `range(12/01-12/31)`<br><code>range(8/01-8/15|9/01-9/15)</code> |
|
||||
| Never | Never updates | never | `never` |
|
||||
| Non Existing | Updates if it doesn't exist | non_existing | `non_existing` |
|
||||
| All | Requires that all comma separated scheduling options inside its brackets be meet in order to run | all[Options] | `all[weekly(sunday), hourly(17)]` |
|
||||
|
||||
* `daily` is the default when `schedule` is not specified.
|
||||
* You can run the script multiple times per day but using the `--time` command line argument detailed on the [Run Commands & Environmental Variables Page](../pmm/environmental.md).
|
||||
* You can have multiple scheduling options as a list.
|
||||
* You can use the `delete_not_scheduled` setting to delete Collections that are skipped due to not being scheduled.
|
||||
|
||||
## Examples
|
||||
|
||||
??? blank "Scheduling a Library<a class="headerlink" href="#schedule-library" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule-library" />Uses the `schedule` [Library Attribute](libraries.md#Attributes) to set when a library will be run.
|
||||
|
||||
Other schedule rules for files, overlays, collections, and any other attribute that can be scheduled must also be
|
||||
met.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
Below is an example of a library which has been scheduled to run every Sunday.
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
schedule: weekly(sunday)
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
- pmm: imdb
|
||||
- pmm: studio
|
||||
- pmm: genre
|
||||
- pmm: actor
|
||||
operations:
|
||||
mass_critic_rating_update: tmdb
|
||||
```
|
||||
|
||||
??? blank "Scheduling Collection, Playlist, and Metadata Files<a class="headerlink" href="#schedule-files" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule-files" />Uses the `schedule` [Block Attribute](files.md#Other-Block-Attributes) to set when a file
|
||||
will be run.
|
||||
|
||||
Other schedule rules for collections and any other attribute that can be scheduled must also be met.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
Collection Files, Playlist Files, and Metadata Files can all be individually scheduled, as seen below where
|
||||
different files are scheduled to run on each day of the week:
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- file: config/Movies.yml
|
||||
schedule: weekly(monday)
|
||||
- pmm: imdb
|
||||
schedule: weekly(tuesday)
|
||||
- folder: config/Movies/
|
||||
schedule: weekly(wednesday)
|
||||
- pmm: genre
|
||||
schedule: weekly(thursday)
|
||||
- pmm: actor
|
||||
schedule: weekly(friday)
|
||||
metadata_files:
|
||||
- file: config/metadata.yml
|
||||
schedule: weekly(saturday)
|
||||
playlist_files:
|
||||
- file: config/Playlists.yml
|
||||
schedule: weekly(sunday)
|
||||
```
|
||||
|
||||
??? blank "Scheduling Overlays<a class="headerlink" href="#schedule-overlays" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule-overlays" />Uses the `schedule_overlays` [Library Attribute](libraries.md#attributes) to set when
|
||||
overlays will run for a library.
|
||||
|
||||
**Note: Overlay Files cannot be individually Scheduled, all Overlay Files must be scheduled for the same period.**
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
In the Example below overlays will only be run weekly on Saturday.
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
schedule_overlays: weekly(saturday)
|
||||
overlay_files:
|
||||
- pmm: audio_codec
|
||||
- pmm: resolution
|
||||
- pmm: video_format
|
||||
```
|
||||
|
||||
??? blank "Scheduling Individual Collections<a class="headerlink" href="#schedule-collection" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule-collection" />Uses the `schedule` [Definition Setting](../files/settings.md) to set when this
|
||||
collection will run.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
Below is an example of a collection which has been scheduled to run on a Sunday. In this scenario, if you run
|
||||
PMM on a Monday, this collection will be skipped but any other collections which do not have a scheduled defined
|
||||
will be run.
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
TMDb Trending Weekly:
|
||||
tmdb_trending_weekly: 30
|
||||
sync_mode: sync
|
||||
schedule: weekly(sunday)
|
||||
TMDb Top Rated:
|
||||
tmdb_top_rated: 30
|
||||
sync_mode: sync
|
||||
schedule:
|
||||
- monthly(1)
|
||||
- monthly(15)
|
||||
```
|
||||
|
||||
??? blank "Scheduling Operation Blocks<a class="headerlink" href="#schedule-operations" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule-operations" />Each [Operation Block](operations.md#operation-blocks) can use the `schedule`
|
||||
[Definition Setting](../files/settings.md) to set when that block will run.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
This example shows just one Operation Block scheduled weekly on fridays.
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- pmm: imdb
|
||||
operations:
|
||||
schedule: weekly(friday)
|
||||
mass_critic_rating_update: tmdb
|
||||
split_duplicates: true
|
||||
```
|
||||
|
||||
This example shows 2 Operation Blocks each with a differnet schedule.
|
||||
|
||||
```yaml
|
||||
libraries:
|
||||
Movies:
|
||||
collection_files:
|
||||
- pmm: imdb
|
||||
operations:
|
||||
- schedule: weekly(friday)
|
||||
mass_critic_rating_update: tmdb
|
||||
- schedule: weekly(saturday)
|
||||
split_duplicates: true
|
||||
```
|
||||
|
||||
??? blank "Scheduling Pinning Collections<a class="headerlink" href="#schedule-pinning" title="Permanent link">¶</a>"
|
||||
|
||||
<div id="schedule-pinning" />Uses the `visible_library`, `visible_home`, or `visible_shared`
|
||||
[Collection Metadata Update](../files/updates.md) to have collections be "pinned" to your home screen while
|
||||
scheduled.
|
||||
|
||||
???+ example "Example"
|
||||
|
||||
In this example, the collection will be pinned to your home screen for the month of December and on January 1st
|
||||
will no longer be pinned (you must run PMM on 1st January for the removal of the pin to happen)
|
||||
|
||||
```yaml
|
||||
collections:
|
||||
Christmas Movies:
|
||||
imdb_list: https://www.imdb.com/list/ls000096828/
|
||||
sync_mode: sync
|
||||
visible_home: range(12/01-12/31)
|
||||
```
|