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