# yaml-language-server: $schema=https://raw.githubusercontent.com/bullmoose20/pmm-yaml-schema/main/config_schema.json ### Highly recommend using Visual Studio Code with indent-rainbow plugin. VSC will also leverage the above link to enhance pmm yml edits. ### Must be on Version 1.19.1-nightly5 or greater libraries: Movies: # Must match a library name in your Plex report_path: config/missing/Movies_report.yml template_variables: sep_style: gray # use the gray separators globally for this library collection_mode: hide # hide the collections language: fr # could be default(which is en), da, de, fr, pt-br or another lang code that we have translated placeholder_imdb_id: tt8579674 # 1917 (2019) placeholder id for the separators metadata_path: - pmm: based # collections based on a book, comic, story, video game # - file: config/metadata/overlay_label.yml # Creates collection of all items with an Overlay label (Testing only) - pmm: aspect # Creates collections based on aspect ratio of media item - git: bullmoose20/movies_refresh # tells plex to refresh media items added within the last 7 days - pmm: separator_award # An "index card" - pmm: bafta # BAFTA Awards template_variables: # based on when the award show started data: starting: 2014 ending: current_year - pmm: cannes # Cannes Film Festival Awards template_variables: # based on when the award show started data: starting: 2016 ending: current_year - pmm: choice # Critic's Choice Awards template_variables: # based on when the award show started data: starting: 2014 ending: current_year - pmm: golden # Golden Globes Awards template_variables: # based on when the award show started data: starting: 1944 ending: current_year - pmm: oscars # The Oscars template_variables: # based on when the award show started data: starting: 1928 ending: current_year - pmm: other_award # Other award collections - pmm: spirit # Independent Spirit Awards template_variables: # based on when the award show started data: starting: 2014 ending: current_year - pmm: sundance # Sundance Film Festival Awards template_variables: # based on when the award show started data: starting: 2010 ending: current_year - pmm: separator_chart # An "index card" - pmm: anilist # AniDB Charts (Popular, Trending, etc.) - pmm: imdb # IMDb Charts (Popular, Trending, etc.) - pmm: myanimelist # MAL Charts (Popular, Trending, etc.) - pmm: other_chart # Other Charts (Popular, Trending, etc.) - pmm: tautulli # Tautulli Charts (Popular, Trending, etc.) - pmm: tmdb # TMDb Charts (Popular, Trending, etc.) - pmm: trakt # Trakt Charts (Popular, Trending, etc.) - pmm: basic # Some basic chart collections based on recently released media in your library - pmm: collectionless # Collectionless collection to help Show/Hide Movies/Shows properly in your library # - file: /config/metadata/both/birthday # Actor birthdays - pmm: actor template_variables: collection_section: '001' use_separator: false style: diiivoycolor name_format: 🎂 Anniversaire de <> translation_key: birthday sort_by: audience_rating.desc title_format: <>'s Birthday data: depth: 20 limit: 100 tmdb_birthday: this_month: true - pmm: actor # Actors template_variables: # bw, rainier, diiivoy, diiivoycolor, or orig style is used. depth and limit is set low, but sometimes I boost to 10, 150 style: signature data: depth: 1 limit: 15 - pmm: director # Directors template_variables: # bw, rainier, diiivoy, diiivoycolor, or orig style is used. depth and limit is set low, but sometimes I boost to 10, 150 style: signature data: depth: 1 limit: 15 - pmm: producer # Producers template_variables: # bw, rainier, diiivoy, diiivoycolor, or orig style is used. depth and limit is set low, but sometimes I boost to 10, 150 exclude: # ever have some random person... you can exclude them if you want - Jeremy Kleiner - Thomas Hayslip style: signature data: depth: 1 limit: 15 - pmm: writer # Writers template_variables: # bw, rainier, diiivoy, diiivoycolor, or orig style is used. depth and limit is set low, but sometimes I boost to 10, 150 exclude: # ever have some random person... you can exclude them if you want - Donald Kaufman style: signature data: depth: 1 limit: 15 - pmm: audio_language # English, French, Arabic, German, etc. audio language - pmm: content_rating_cs # Choose content_rating_uk, content_rating_us, or content_rating_cs - pmm: content_rating_us # Choose content_rating_uk, content_rating_us, or content_rating_cs - pmm: content_rating_uk # Choose content_rating_uk, content_rating_us, or content_rating_cs - pmm: content_rating_mal # Choose content_rating_mal for anime ratings - pmm: genre # Action, Comedy, Drama, etc. - pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style # template_variables: # style: standards - pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc. - pmm: subtitle_language # English, French, Arabic, German, etc. subtitles - pmm: year # Year the media item was released starting from 1880 to current_year template_variables: data: starting: 1880 ending: current_year - pmm: country # Country associated to the media item template_variables: style: color - pmm: region # Region associated to the media item template_variables: style: color - pmm: continent # Continent associated to the media item template_variables: style: color - pmm: decade # Decade the media item was released # - pmm: franchise # https://metamanager.wiki/en/latest/defaults/movie/franchise.html#franchise-collections # template_variables: # minimum_items: 2 # delete_below_minimum: true - pmm: seasonal # Christmas, Halloween, etc. template_variables: # Canadian Thankgsgiving is a different date range. Otherwise, I want to ALWAYS see the seasonal schedule_independence: daily schedule_easter: daily schedule_valentine: daily schedule_patrick: daily schedule_thanksgiving: range(10/01-10/31) schedule_halloween: daily schedule_christmas: daily schedule_years: daily schedule_mother: daily schedule_memorial: daily schedule_father: daily schedule_labor: daily - pmm: streaming # Streaming on Disney+, Netflix, etc. - pmm: universe # Marvel Cinematic Universe, Wizarding World, etc. overlay_path: - remove_overlays: false # Set to true if you want to remove overlays - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - pmm: aspect # Creates overlays based on aspect ratio of media item - pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. style: standard/compact. compact is default - pmm: language_count # blank means 1 audio language track, dual means 2, multi means > 2 # - pmm: content_rating_uk # UK BBFC content ratings - pmm: content_rating_us_movie # US MPAA content ratings # - pmm: commonsense # Commonsense content ratings Age 2+, Age 14+, etc. # - pmm: direct_play # Show direct play only overlay - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes template_variables: use_subtitles: true - pmm: mediastinger # Mediastinger overlay when the media item contains a stinger at the end of the movie/show or during the credits - pmm: ratings # Ratings with custom fonts matched to the style of the rating, font_size, and on the right in 'square' format template_variables: rating1: user rating1_image: rt_tomato rating1_font: config/metadata/overlays/fonts/Adlib.ttf rating1_font_size: 63 rating2: critic rating2_image: imdb rating2_font: config/metadata/overlays/fonts/Impact.ttf rating2_font_size: 70 rating3: audience rating3_image: tmdb rating3_font: config/metadata/overlays/fonts/Avenir_95_Black.ttf rating3_font_size: 70 horizontal_position: right # rating_source: Anidb # font: config/metadata/overlays/fonts/Handel Gothic ITC W01 Heavy.ttf # rating_source: IMDb # font: config/metadata/overlays/fonts/Impact.ttf # rating_source: Letterboxd # font: config/metadata/overlays/fonts/HelveticaNowDisplay-ExtBlk.ttf # rating_source: Metacritic # font: config/metadata/overlays/fonts/Myriad Bold.otf # rating_source: TMDb # font: config/metadata/overlays/fonts/Avenir_95_Black.ttf # rating_source: Trakt # font: config/metadata/overlays/fonts/Claspo-ND-Medium.ttf # rating_source: Rotten # font: config/metadata/overlays/fonts/Adlib.ttf - pmm: resolution # 4K HDR, 1080P FHD, etc. - pmm: ribbon # Used for ribbon in bottom right template_variables: style: red - pmm: streaming # Streaming on Disney+, Netflix, etc. - pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc. - pmm: versions # Will show duplicates for that media item and works with builder_level show, episode, and season # template_variables: # back_color: "#f5289180" # vertical_offset: 0 # horizontal_offset: 0 # back_width: 2000 # back_height: 3000 - pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left settings: asset_directory: config/assets/Movies/ prioritize_assets: true # The asset_directory contains folders per media item with respective posters operations: split_duplicates: false # Splits all duplicate movies/shows found in this library assets_for_all: false # Search in assets for images for every item in your library delete_collections: configured: false # False - Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run). managed: false # False - Collection must be an Unmanaged Collection to be deleted (the collection does not have the PMM label) mass_user_rating_update: mdb_tomatoes # Update user ratings with mdb_tomatoes mass_critic_rating_update: imdb # Update critic ratings with imdb mass_audience_rating_update: tmdb # Update audience ratings with tmdb mass_genre_update: tmdb # Update all genres from tmdb mass_content_rating_update: mdb_commonsense # Changes Content Rating to "1", "2" etc. to specify appropriate age mass_originally_available_update: tmdb # Update all original available date from tmdb mass_imdb_parental_labels: none # Apply all Parental Labels with a value of None, Mild, Moderate, or Severe to match IMDb parental guide # mass_poster_update: tmdb # Resets posters to tmdb, plex, locked, unlock which is useful to remove all overlays when running with -r -op TV Shows: # Must match a library name in your Plex report_path: config/missing/TV_report.yml template_variables: sep_style: gray # use the gray separators globally for this library collection_mode: hide # hide the collections language: fr # could be default(which is en), da, de, fr, pt-br or another lang code that we have translated placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators metadata_path: - pmm: based # collections based on a book, comic, story, video game # - file: config/metadata/overlay_label.yml # Creates collection of all items with an Overlay label (Test g only) - pmm: aspect # Creates collections based on aspect ratio of media item - git: bullmoose20/money_heist # Custom metadata file for Money Heist - git: bullmoose20/tv_refresh # Tells plex to refresh media items added within the last 7 days - pmm: separator_award # An "index card" - pmm: choice # Critic's Choice Awards template_variables: # based on when the award show started data: starting: 2014 ending: current_year - pmm: golden # Golden Globes Awards template_variables: # based on when the award show started data: starting: 1944 ending: current_year - pmm: emmy # Emmy Awards template_variables: # based on when the award show started data: starting: 1948 ending: current_year - pmm: separator_chart # An "index card" - pmm: anilist # AniDB Charts (Popular, Trending, etc.) - pmm: imdb # IMDb Charts (Popular, Trending, etc.) - pmm: myanimelist # MAL Charts (Popular, Trending, etc.) - pmm: other_chart # Other Charts (Popular, Trending, etc.) - pmm: tautulli # Tautulli Charts (Popular, Trending, etc.) - pmm: tmdb # TMDb Charts (Popular, Trending, etc.) - pmm: trakt # Trakt Charts (Popular, Trending, etc.) - pmm: basic # Some basic chart collections based on recently released media in your library - pmm: collectionless # Collectionless collection to help Show/Hide Movies/Shows properly in your library # - file: /config/metadata/both/birthday # Actor birthdays - pmm: actor template_variables: collection_section: '001' use_separator: false style: diiivoycolor name_format: 🎂 Anniversaire de <> translation_key: birthday sort_by: audience_rating.desc title_format: <>'s Birthday exclude: # ever have some random person... you can exclude them if you want - Macy Nyman data: depth: 20 limit: 100 tmdb_birthday: this_month: true - pmm: actor # Actors template_variables: # bw, rainier, diiivoy, diiivoycolor, or orig style is used. depth and limit is set low, but sometimes I boost to 10, 150 exclude: # ever have some random person... you can exclude them if you want - Macy Nyman style: signature data: depth: 1 limit: 15 - pmm: audio_language # English, French, Arabic, German, etc. audio language - pmm: content_rating_cs # Choose content_rating_uk, content_rating_us, or content_rating_cs - pmm: content_rating_us # Choose content_rating_uk, content_rating_us, or content_rating_cs - pmm: content_rating_uk # Choose content_rating_uk, content_rating_us, or content_rating_cs - pmm: content_rating_mal # Choose content_rating_mal for anime ratings - pmm: genre # Action, Comedy, Drama, etc. - pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style # template_variables: # style: standards - pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc. - pmm: subtitle_language # English, French, Arabic, German, etc. subtitles - pmm: year # Year the media item was released starting from 1880 to current_year template_variables: data: starting: 1880 ending: current_year - pmm: country # Country associated to the media item template_variables: style: color - pmm: region # Region associated to the media item template_variables: style: color - pmm: continent # Continent associated to the media item template_variables: style: color - pmm: decade # Decade the media item was released # - pmm: franchise # https://metamanager.wiki/en/latest/defaults/movie/franchise.html#franchise-collections # template_variables: # minimum_items: 2 # delete_below_minimum: true - pmm: network # ABC, CBC, NBC, FOX, etc. - pmm: streaming # Streaming on Disney+, Netflix, etc. - pmm: universe # Marvel Cinematic Universe, Wizarding World, etc. overlay_path: - remove_overlays: false # Set to true if you want to remove overlays - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays # - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - pmm: aspect # Creates aspect ratio overlay - pmm: aspect template_variables: builder_level: season - pmm: aspect template_variables: builder_level: episode - pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. style: standard/compact. compact is default - pmm: audio_codec template_variables: builder_level: season - pmm: audio_codec template_variables: builder_level: episode # - pmm: content_rating_uk # UK BBFC content ratings # - pmm: content_rating_uk # template_variables: # builder_level: season # - pmm: content_rating_uk # template_variables: # builder_level: episode - pmm: content_rating_us_show # US MPAA content ratings - pmm: content_rating_us_show template_variables: builder_level: season - pmm: content_rating_us_show template_variables: builder_level: episode # - pmm: commonsense # Commonsense content ratings Age 2+, Age 14+, etc. # - pmm: commonsense # template_variables: # builder_level: season # - pmm: commonsense # template_variables: # builder_level: episode # - pmm: direct_play # - pmm: direct_play # template_variables: # builder_level: season # - pmm: direct_play # template_variables: # builder_level: episode - pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc. - pmm: studio template_variables: builder_level: season - pmm: studio template_variables: builder_level: episode - pmm: streaming - pmm: episode_info # SE##E## information in bottom right and works with builder_level episode template_variables: builder_level: episode - pmm: language_count # blank means 1 audio language track, dual means 2, multi means > 2 and works with builder_level show, episode, and season - pmm: language_count template_variables: builder_level: season - pmm: language_count template_variables: builder_level: episode - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes template_variables: use_subtitles: true - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes template_variables: builder_level: season - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes template_variables: use_subtitles: true builder_level: season - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes template_variables: builder_level: episode - pmm: languages # Languages spoken and subtitles with associated flags and two-digit lang codes template_variables: use_subtitles: true builder_level: episode - pmm: mediastinger # Mediastinger overlay when the media item contains a stinger at the end of the movie/show or during the credits and works with builder_level show - pmm: network # ABC, CBC, NBC, FOX, etc. - pmm: network template_variables: builder_level: season - pmm: network template_variables: builder_level: episode - pmm: ratings # Ratings with custom fonts matched to the style of the rating, font_size, and on the right in 'square' format. builder_level: show has 3 ratings max template_variables: rating1: user rating1_image: rt_tomato rating1_font: config/metadata/overlays/fonts/Adlib.ttf rating1_font_size: 63 rating2: critic rating2_image: imdb rating2_font: config/metadata/overlays/fonts/Impact.ttf rating2_font_size: 70 rating3: audience rating3_image: tmdb rating3_font: config/metadata/overlays/fonts/Avenir_95_Black.ttf rating3_font_size: 70 horizontal_position: right - pmm: ratings # Ratings with custom fonts matched to the style of the rating, font_size, and on the right in 'square' format. builder_level: episode has 2 ratings max template_variables: # rating1: user # rating1_image: rt_tomato # rating1_font: config/metadata/overlays/fonts/Adlib.ttf # rating1_font_size: 63 rating1: critic rating1_image: imdb rating1_font: config/metadata/overlays/fonts/Impact.ttf rating1_font_size: 70 rating2: audience rating2_image: tmdb rating2_font: config/metadata/overlays/fonts/Avenir_95_Black.ttf rating2_font_size: 70 horizontal_position: right builder_level: episode - pmm: resolution # 4K HDR, 1080P FHD, etc. and works with builder_level show, episode, and season - pmm: resolution template_variables: builder_level: season - pmm: resolution template_variables: builder_level: episode - pmm: ribbon # Used for ribbon in bottom right template_variables: style: red - pmm: runtimes # Runtime information in bottom right and works with builder_level episode template_variables: builder_level: episode - pmm: status # Airing, Returning, Ended, Canceled and works with builder_level show - pmm: streaming # Streaming on Disney+, Netflix, etc. - pmm: versions # Will show duplicates for that media item and works with builder_level show, episode, and season # template_variables: # back_width: 1000 # back_height: 1500 # back_color: "#f52891cc" - pmm: versions # Will show duplicates for that media item and works with builder_level show, episode, and season template_variables: # back_width: 1000 # back_height: 1500 # back_color: "#f52891cc" builder_level: season - pmm: versions # Will show duplicates for that media item and works with builder_level show, episode, and season template_variables: # back_width: 1000 # back_height: 1500 # back_color: "#f52891cc" builder_level: episode - pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left and works with builder_level show, episode, and season - pmm: video_format template_variables: builder_level: season - pmm: video_format template_variables: builder_level: episode settings: asset_directory: config/assets/TV Shows/ prioritize_assets: true # The asset_directory contains folders per media item with respective posters operations: split_duplicates: false # Splits all duplicate movies/shows found in this library assets_for_all: false # Search in assets for images for every item in your library delete_collections: configured: false # False - Collection must be an Unconfigured Collection to be deleted (collection is not in the config file of the specific PMM run). managed: false # False - Collection must be an Unmanaged Collection to be deleted (the collection does not have the PMM label) mass_user_rating_update: mdb_tomatoes # Update user ratings with mdb_tomatoes mass_critic_rating_update: imdb # Update critic ratings with imdb mass_audience_rating_update: tmdb # Update audience ratings with tmdb mass_genre_update: tmdb # Update all genres from tmdb mass_content_rating_update: mdb_commonsense # Changes Content Rating to "1", "2" etc. to specify appropriate age mass_originally_available_update: tmdb # Update all original available date from tmdb mass_episode_critic_rating_update: imdb # Update critic ratings with imdb for episodes mass_episode_audience_rating_update: tmdb # Update audience ratings with tmdb for episodes mass_imdb_parental_labels: none # Apply all Parental Labels with a value of None, Mild, Moderate, or Severe to match IMDb parental guide # mass_poster_update: tmdb # Resets posters to tmdb, plex, locked, unlock which is useful to remove all overlays when running with -r -op playlist_files: - pmm: playlist template_variables: libraries: Movies, TV Shows settings: # Can be individually specified per library as well 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: false sync_mode: sync default_collection_order: minimum_items: 1 delete_below_minimum: true delete_not_scheduled: false run_again_delay: 1 missing_only_released: true show_unconfigured: true show_unmanaged: true show_filtered: true show_options: true show_missing: false only_filter_missing: false show_missing_assets: false save_report: false tvdb_language: eng ignore_ids: ignore_imdb_ids: item_refresh_delay: 0 playlist_sync_to_users: all playlist_report: true custom_repo: verify_ssl: true check_nightly: true playlist_exclude_users: webhooks: # Can be individually specified per library as well error: (redacted) run_start: (redacted) run_end: (redacted) changes: (redacted) version: (redacted) delete: (redacted) plex: # Can be individually specified per library as well; REQUIRED for the script to run url: (redacted) token: (redacted) timeout: 60 clean_bundles: true empty_trash: true optimize: true db_cache: '' # 20000 MB is approximately 20GB which is what I use. Adjust for your system tmdb: # REQUIRED for the script to run apikey: (redacted) language: en region: '' cache_expiration: 60 tautulli: # Can be individually specified per library as well url: (redacted) apikey: (redacted) omdb: apikey: (redacted) cache_expiration: 60 mdblist: apikey: (redacted) cache_expiration: 60 notifiarr: apikey: (redacted) radarr: # Can be individually specified per library as well url: (redacted) token: (redacted) root_folder_path: /data/media/movies monitor: true availability: announced quality_profile: Any tag: pmm search: false radarr_path: plex_path: add_existing: false add_missing: false upgrade_existing: false ignore_cache: false sonarr: # Can be individually specified per library as well url: (redacted) token: (redacted) root_folder_path: /data/media/tv monitor: all quality_profile: Any language_profile: English series_type: standard season_folder: true tag: pmm search: false cutoff_search: false sonarr_path: plex_path: add_existing: false add_missing: false upgrade_existing: false ignore_cache: false anidb: client: (redacted) version: (redacted) language: en cache_expiration: 60 username: (redacted) password: (redacted) ############################################ trakt: client_id: (redacted) client_secret: (redacted) authorization: access_token: (redacted) token_type: Bearer expires_in: 7889237 refresh_token: (redacted) scope: public created_at: 1690295506 pin: ############################################ mal: client_id: (redacted) client_secret: (redacted) localhost_url: (redacted) authorization: access_token: (redacted) token_type: Bearer expires_in: 2678400 refresh_token: (redacted) cache_expiration: 60