You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Plex-Meta-Manager/docs/builders/dynamic_types.md

61 KiB

Dynamic Collection Types

Specifies the type of dynamic collection to be created.

Depending on the type of dynamic collection, data is used to specify the options that are required to fulfill the requirements of creating the collection.

Type Option Description Uses
data
Movies Shows Music Video
tmdb_collection Create a collection for each TMDb Collection associated with an item in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
tmdb_popular_people Create a collection for each actor found on TMDb's Popular People List :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
original_language Create a collection for each TMDb original language associated with an item in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
origin_country Create a collection for each TMDb origin country associated with an item in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
trakt_user_lists Create a collection for each list from specific trakt users :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
trakt_liked_lists Create a collection for each list the authenticated trakt user likes :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
trakt_people_list Create a collection for each actor found in the trakt list :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
actor Create a collection for each actor found in the library :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
director Create a collection for each director found in the library :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
writer Create a collection for each writer found in the library :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
producer Create a collection for each producer found in the library :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
genre Create a collection for each genre found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green }
album_genre Create a collection for each album genre found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red }
content_rating Create a collection for each content rating found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green }
year Create a collection for each year found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
episode_year Create a collection for each episode year found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
decade Create a collection for each decade found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
country Create a collection for each country found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green }
resolution Create a collection for each resolution found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
subtitle_language Create a collection for each subtitle language found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
audio_language Create a collection for each audio language found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
studio Create a collection for each studio found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
edition Create a collection for each edition found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
network Create a collection for each network found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red }
mood Create a collection for each artist mood found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red }
album_mood Create a collection for each album mood found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red }
track_mood Create a collection for each track mood found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red }
style Create a collection for each artist style found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red }
album_style Create a collection for each album style found in the library :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-xmark:{ .red } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-xmark:{ .red }
number Creates a collection for each number defined :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green }
custom Creates a collection for each custom key: key_name pair defined. :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green } :fontawesome-solid-circle-check:{ .green }

TMDb Collection

Create collections based on the TMDb Collections associated with items in the library.

type tmdb_collection
data Not Used
Keys TMDb Collection ID
Key Names TMDb Collection Title
Default title_format <<key_name>>
Default Template
default_template:
  tmdb_collection_details: <<value>>
  minimum_items: 2

Example: Create collection for every TMDb Collection found in the library.

dynamic_collections:
  TMDb Collections:          # This name is the mapping name
    type: tmdb_collection
    remove_suffix: Collection
    remove_prefix: The

Create collections based on each actor found on TMDb's Popular People List.

type tmdb_popular_people
data Number greater than 0
Keys TMDb Person ID
Key Names TMDb Person Name
Default title_format <<key_name>>
Default Template
default_template:
  tmdb_person: <<value>>
  plex_search:
    all:
      actor: tmdb
dynamic_collections:
  TMDb Popular People:          # This name is the mapping name
    type: tmdb_popular_people
    data: 10

Original Language

Create collections based on the TMDb original language associated with items in the library.

type original_language
data Not Used
Keys ISO 639-1 Code
Key Names ISO Language Name
Default title_format <<key_name>> <<library_type>>s
Default Template
default_template:
  plex_all: true
  filters:
    original_language: <<value>>

Example: Create collection for every TMDb Original Language found in the library.

dynamic_collections:
  TMDb Languages:          # This name is the mapping name
    type: original_language

Origin Country

Create collections based on the TMDb origin country associated with items in the library.

type origin_country
data Not Used
Keys ISO 3166-1 alpha-2 country code
Key Names ISO Country Name
Default title_format <<key_name>> <<library_type>>s
Default Template
default_template:
  plex_all: true
  filters:
    origin_country: <<value>>

Example: Create collection for every TMDb Origin Country found in the library.

dynamic_collections:
  TMDb Countries:          # This name is the mapping name
    type: origin_country

Trakt User Lists

Create collections for each of the Trakt lists for the specified users. Use me to reference the authenticated user.

type trakt_user_lists
data List of Trakt Users
Keys Trakt List URL
Key Names Trakt List Title
Default title_format <<key_name>>
Default Template
default_template:
  trakt_list_details: <<value>>

Example: Create collections for each of the lists that the users have created

dynamic_collections:
  Trakt User Lists:          # This name is the mapping name
    type: trakt_user_lists
    data:
     - me
     - yozoraxcii

Trakt Liked Lists

Create collections for each of the Trakt lists that the authenticated user has liked.

type trakt_liked_lists
data Not Used
Keys Trakt List URL
Key Names Trakt List Title
Default title_format <<key_name>>
Default Template
default_template:
  trakt_list_details: <<value>>

Example: Create collections for each of the lists that the user has liked within Trakt

dynamic_collections:
  Trakt Liked Lists:          # This name is the mapping name
    type: trakt_liked_lists

Trakt People List

Create collections for each of the people found within Trakt lists that the user specifies.

type trakt_people_list
data List of Trakt URLs
Keys TMDb Person ID
Key Names TMDb Person Name
Default title_format <<key_name>>
Default Template
default_template:
  tmdb_person: <<value>>
  plex_search:
    all:
      actor: tmdb

Example: Create a collection for each of the people on the trakt list

dynamic_collections:
  Trakt People Lists:
    type: trakt_people_list
    data:
     - https://trakt.tv/users/ash9001/lists/all-time-top-actors

Actor

Create a collection for each actor found in the library.

type actor
datas
Attribute Description & Values
depth Values: Number greater than 0 Default: 3
minimum Values: Number greater than 0 Default: 3
limit Values: Number greater than 0 Default: None
Keys Person Name
Key Names Person Name
Default title_format <<key_name>>
Default Template
default_template:
  plex_search:
    any:
      actor: <<value>>
  • depth determines how many top billed actor per item they are in. (i.e. if they play a cameo role, this is unlikely to be counted)
  • minimum determines the minimum number of times the actor must appear within depth for the collection to be created.
  • limit determines the number of actor collection to max out at. (i.e. if to make collections for the top 25 actors)

Example:

  • Create a collection for the top 25 actors who appear in the top 5 billing credits of movies
dynamic_collections:
  Top Actors:         # mapping name does not matter just needs to be unique
    type: actor
    data:
      depth: 5
      limit: 25

Example:

  • Create a collection for actors who appear in the top 5 billing credits of movies
  • Only create the collection if they are in the top 5 billing credits of at least 20 movies
dynamic_collections:
  Actors:         # mapping name does not matter just needs to be unique
    type: actor
    data:
      depth: 5
      minimum: 20

Director

Create a collection for each director found in the library.

type director
datas
Attribute Description & Values
depth Values: Number greater than 0 Default: 3
minimum Values: Number greater than 0 Default: 3
limit Values: Number greater than 0 Default: None
Keys Person Name
Key Names Person Name
Default title_format <<key_name>>
Default Template
default_template:
  plex_search:
    any:
      director: <<value>>
  • depth determines how many directors are looked at per item.
  • minimum determines the minimum number of times the director must appear within depth for the collection to be created.
  • limit determines the number of director collection to max out at. (i.e. if to make collections for the top 25 directors)

Example:

  • Create a collection for the top 5 directors who appear in the top director credit of movies
dynamic_collections:
  Top Directors:         # mapping name does not matter just needs to be unique
    type: director
    data:
      depth: 1
      limit: 5

Example:

  • Create a collection for directors who appear in the top director credits of movies
  • Only create the collection if they are in the top director credits of at least 10 movies
dynamic_collections:
  Directors:         # mapping name does not matter just needs to be unique
    type: director
    data:
      depth: 1
      minimum: 10

Writer

Create a collection for each writer found in the library.

type writer
datas
Attribute Description & Values
depth Values: Number greater than 0 Default: 3
minimum Values: Number greater than 0 Default: 3
limit Values: Number greater than 0 Default: None
Keys Person Name
Key Names Person Name
Default title_format <<key_name>>
Default Template
default_template:
  plex_search:
    any:
      writer: <<value>>
  • depth determines how many writers are looked at per item.
  • minimum determines the minimum number of times the writer must appear within depth for the collection to be created.
  • limit determines the number of writer collection to max out at. (i.e. if to make collections for the top 25 writers)

Example:

  • Create a collection for the top 5 writers who appear in the top writer credit of movies
dynamic_collections:
  Top Writers:         # mapping name does not matter just needs to be unique
    type: writer
    data:
      depth: 1
      limit: 5

Example:

  • Create a collection for writers who appear in the top writer credits of movies
  • Only create the collection if they are in the top writer credits of at least 10 movies
dynamic_collections:
  Writers:         # mapping name does not matter just needs to be unique
    type: writer
    data:
      depth: 1
      minimum: 10

Producer

Create a collection for each producer found in the library.

type producer
datas
Attribute Description & Values
depth Values: Number greater than 0 Default: 3
minimum Values: Number greater than 0 Default: 3
limit Values: Number greater than 0 Default: None
Keys Person Name
Key Names Person Name
Default title_format <<key_name>>
Default Template
default_template:
  plex_search:
    all:
      producer: <<value>>
  • depth determines how many producers are looked at per item.
  • minimum determines the minimum number of times the producer must appear within depth for the collection to be created.
  • limit determines the number of producer collection to max out at. (i.e. if to make collections for the top 25 producers)

Example:

  • Create a collection for the top 5 producers who appear in the top producer credit of movies
dynamic_collections:
  Top Producers:         # mapping name does not matter just needs to be unique
    type: producer
    data:
      depth: 1
      limit: 5

Example:

  • Create a collection for producers who appear in the top producer credits of movies
  • Only create the collection if they are in the top producer credits of at least 10 movies
dynamic_collections:
  Producers:         # mapping name does not matter just needs to be unique
    type: producers
    data:
      depth: 1
      minimum: 10

Genre

Create a collection for each genre found in the library.

type genre
data Not Used
Keys Genre
Key Names Genre
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      genre: <<value>>

Example:

  • Create dynamic collections based on each genre found in the library (TV and Movies)
  • Amend the template to increase the limit from 50 to 100
  • Exclude the "Talk Show" genre
  • Name the collection "Top [Genre] Movies" or "Top [Genre] Shows"
templates:
  genre collection:
    smart_filter:
      limit: 100
      sort_by: critic_rating.desc
      all:
        genre: <<value>>
dynamic_collections:
  Genres:         # mapping name does not matter just needs to be unique
    type: genre
    exclude:
      - Talk Show
    title_format: Top <<key_name>> <<library_type>>s
    template: genre collection

Album Genre

Create a collection for each album genre found in the library.

type album_genre
data Not Used
Keys Genre
Key Names Genre
Default title_format Top <<key_name>> Albums
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: plays.desc
    any:
      album_genre: <<value>>

Example:

  • Create dynamic collections based on each Album genre found in the library
  • Amend the template to increase the limit from 10 to 20
  • Exclude the "Pop" genre
  • Name the collection "Top 20 [Genre] Albums"
templates:
  genre collection:
    smart_filter:
      limit: 100
      sort_by: plays.desc
      all:
        album_genre: <<value>>
dynamic_collections:
  Genres:         # mapping name does not matter just needs to be unique
    type: album_genre
    exclude:
      - Pop
    title_format: Top 20 <<key_name>> <<library_type>>s
    template: genre collection

Content Rating

Create a collection for each content rating found in the library.

type content_rating
data Not Used
Keys Content Rating
Key Names Content Rating
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      content_rating: <<value>>

Example:

  • Create dynamic collections based on each content rating found in the library (TV and Movies)
  • Amend the template to increase the limit from 50 to 100
templates:
  content rating collection:
    smart_filter:
      limit: 100
      sort_by: critic_rating.desc
      all:
        content_rating: <<value>>
dynamic_collections:
  Content Ratings:         # mapping name does not matter just needs to be unique
    type: content_rating
    template: content rating collection

Year

Create a collection for each year found in the library.

type year
data Not Used
Keys Year
Key Names Year
Default title_format Best <<library_type>>s of <<key_name>>
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      year: <<value>>

Example

  • Create dynamic collections based on each year found in the library (TV and Movies)
  • Use the include attribute to only show collections for years "2020", "2021" and "2022"
  • Name the collection "Best of [Year]"
dynamic_collections:
  Years:         # mapping name does not matter just needs to be unique
    type: year
    include:
      - 2020
      - 2021
      - 2022
    title_format: Best of <<key_name>>

Episode Year

Create a collection for each episode year found in the library.

type episode_year
data Not Used
Keys Episode Year
Key Names Year
Default title_format Best <<library_type>>s of <<key_name>>
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      episode_year: <<value>>

Example

  • Create dynamic collections based on each year found in the library (TV and Movies)
  • Use the include attribute to only show collections for years "2020", "2021" and "2022"
  • Name the collection "Best of [Year]"
dynamic_collections:
  Years:         # mapping name does not matter just needs to be unique
    type: episode_year
    include:
      - 2020
      - 2021
      - 2022
    title_format: Best of <<key_name>>

Decade

Create a collection for each decade found in the library

type decade
data Not Used
Keys Decade
Key Names Decade
Default title_format Best <<library_type>>s of <<key_name>>
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      decade: <<value>>

Example:

  • Create a collection for each decade found in the library (TV and Movies)
  • Name the collection "Top [Decade] Movies"
  • Rename the 2020 collection name to "Top 2020 Movies (so far)"
dynamic_collections:
  Decades:         # mapping name does not matter just needs to be unique
    type: decade
    title_format: Top <<key_name>> <<library_type>>s
    title_override:
      2020: Top 2020 Movies (so far)

Country

Create a collection for each country found in the library

type country
data Not Used
Keys Country
Key Names Country
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      country: <<value>>

Example:

  • Create a collection for the top movies from each country found in the library
  • Name the collection "Top [Country] Cinema"
  • The key_name_override attribute is used here in combination with the title_format to change the collection name from "France" which would be the default title, to "Top French Cinema"
dynamic_collections:
  Countries:         # mapping name does not matter just needs to be unique
    type: country
    title_format: Top <<key_name>> Cinema
    key_name_override:
      France: French
      Germany: German
      India: Indian

Resolution

Create a collection for each resolution found in the library

type resolution
data Not Used
Keys Resolution
Key Names Resolution
Default title_format <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: title.asc
    any:
      resolution: <<value>>

Example:

  • Create a collection for each resolution found in the library
  • Name the collection "[Resolution] Movies"
  • Combine 480p, 576p and SD into a collection called "SD Movies"
dynamic_collections:
  Resolutions:         # mapping name does not matter just needs to be unique
    type: resolution
    addons:
      480p:
        - 576p
        - SD
    title_override:
      480p: SD Movies

Subtitle Language

Create a collection for each subtitle language found in the library

type subtitle_language
data Not Used
Keys ISO 639-1 Code
Key Names Subtitle Language Name
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.asc
    any:
      subtitle_language: <<value>>

Example:

  • Create a collection for each subtitle language found in the library
dynamic_collections:
  Subtitle Languages:         # mapping name does not matter just needs to be unique
    type: subtitle_language

Audio Language

Create a collection for each audio language found in the library

type audio_language
data Not Used
Keys ISO 639-1 Code
Key Names Audio Language Name
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.asc
    any:
      audio_language: <<value>>

Example:

  • Create a collection for each audio language found in the library
dynamic_collections:
  Audio Languages:         # mapping name does not matter just needs to be unique
    type: audio_language

Studio

Create a collection for each studio found in the library.

type studio
data Not Used
Keys Studio
Key Names Studio
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      studio: <<value>>

Example:

  • Create a collection for each studio found in a Movies library
templates:
  studio collection:
    smart_filter:
      sort_by: critic_rating.desc
      all:
        studio: <<value>>
dynamic_collections:
  Studios:         # mapping name does not matter just needs to be unique
    type: studio
    title_format: <<key_name>>
    template: studio collection

Edition

Create a collection for each edition found in the library.

type edition
data Not Used
Keys Editions
Key Names Edition
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      edition: <<value>>

Example:

  • Create a collection for each edition found in a Movies library
templates:
  edition collection:
    smart_filter:
      sort_by: critic_rating.desc
      all:
        edition: <<value>>
dynamic_collections:
  Editions:         # mapping name does not matter just needs to be unique
    type: edition
    title_format: <<key_name>>
    template: edition collection

Network

Create a collection for each network found in the library.

type network
data Not Used
Keys Network
Key Names Network
Default title_format Top <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: critic_rating.desc
    any:
      network: <<value>>

Example:

  • Create a collection for each network found in a TV Shows library
templates:
  network collection:
    smart_filter:
      sort_by: critic_rating.desc
      all:
        network: <<value>>
dynamic_collections:
  Networks:         # mapping name does not matter just needs to be unique
    type: network
    title_format: <<key_name>>
    template: network collection

Mood

Create a collection for each artist mood found in the library.

type mood
data Not Used
Keys Mood
Key Names Mood
Default title_format Most Played <<value>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 10
    sort_by: plays.desc
    any:
      artist_mood: <<value>>

Example:

  • Create a collection for the top 20 artists for each mood found in the Music library
  • Amend the template to increase the limit from 10 to 20
  • Name the collection "Top 20 [Mood] Artists"
templates:
  mood collection:
    smart_filter:
      limit: 20
      sort_by: plays.desc
      all:
        artist_mood: <<value>>
dynamic_collections:
  Moods:         # mapping name does not matter just needs to be unique
    type: mood
    title_format: Top 20 <<key_name>> Artists
    template: mood collection

Album Mood

Create a collection for each album mood found in the library.

type album_mood
data Not Used
Keys Mood
Key Names Mood
Default title_format Most Played <<value>> Albums
Default Template
default_template:
  smart_filter:
    limit: 10
    sort_by: plays.desc
    any:
      album_mood: <<value>>

Example:

  • Create a collection for the top 20 albums for each mood found in the Music library
  • Amend the template to increase the limit from 10 to 20
  • Name the collection "Top 20 [Mood] Albums"
templates:
  mood collection:
    smart_filter:
      limit: 20
      sort_by: plays.desc
      all:
        album_mood: <<value>>
dynamic_collections:
  Moods:         # mapping name does not matter just needs to be unique
    type: album_mood
    title_format: Top 20 <<key_name>> Albums
    template: mood collection

Track Mood

Create a collection for each track mood found in the library.

type track_mood
data Not Used
Keys Mood
Key Names Mood
Default title_format Most Played <<value>> Tracks
Default Template
default_template:
  smart_filter:
    limit: 50
    sort_by: plays.desc
    any:
      track_mood: <<value>>

Example:

  • Create a collection for the top 100 tracks for each mood found in the Music library
  • Amend the template to increase the limit from 50 to 100
  • Name the collection "Top 100 [Mood] Tracks"
templates:
  mood collection:
    smart_filter:
      limit: 100
      sort_by: plays.desc
      all:
        track_mood: <<value>>
dynamic_collections:
  Moods:         # mapping name does not matter just needs to be unique
    type: track_mood
    title_format: Top 100 <<key_name>> Tracks
    template: mood collection

Style

Create a collection for each artist style found in the library.

type style
data Not Used
Keys Style
Key Names Style
Default title_format Most Played <<key_name>> <<library_type>>s
Default Template
default_template:
  smart_filter:
    limit: 10
    sort_by: plays.desc
    any:
      artist_style: <<value>>

Example:

  • Create a collection for the top 10 artists for each style found in the Music library
  • Name the collection "Top [Style] Artists"
templates:
  style collection:
    smart_filter:
      limit: 10
      sort_by: plays.desc
      all:
        artist_style: <<value>>
dynamic_collections:
  Styles:         # mapping name does not matter just needs to be unique
    type: style
    title_format: Top <<key_name>> <<library_type>>
    template: style collection

Album Style

Create a collection for each album style found in the library.

type album_style
data Not Used
Keys Style
Key Names Style
Default title_format Most Played <<key_name>> Albums
Default Template
default_template:
  smart_filter:
    limit: 10
    sort_by: plays.desc
    any:
      album_style: <<value>>

Example:

  • Create a collection for the top 10 albums for each style found in the Music library
  • Name the collection "Top [Style] Albums"
templates:
  style collection:
    builder_level: album
    smart_filter:
      limit: 10
      sort_by: plays.desc
      all:
        album_style: <<value>>
dynamic_collections:
  Styles:         # mapping name does not matter just needs to be unique
    type: album_style
    title_format: Top <<key_name>> Albums
    template: style collection

Number

Creates a collection for each number defined.

type number
datas
Attribute Description & Values
starting Values: Number greater than 0 Default: 0
ending Values: Number greater than 1 Default: 1
increment Values: Number greater than 0 Default: 1
  • starting and ending can also have the value current_year
  • You can also use a value relative to the current_year by doing current_year-5
Keys Number
Key Names Number
Default title_format <<key_name>>
Default Template **None**

Example:

  • Create a collection for the Oscar Winner by Year for the last 5 years
  • Name the collection "Oscars Winners [Number]"
templates:
  Oscars:
    summary: Academy Awards (Oscars) Winners for <<key>>
    imdb_list: https://www.imdb.com/search/title/?release_date=<<key>>-01-01,<<key>>-12-31&groups=oscar_winner&sort=moviemeter,asc
    sync_mode: sync
    collection_order: custom
dynamic_collections:
  Oscars Winners Awards:
    type: number
    sync: true
    data:
      starting: current_year-5
      ending: current_year
    title_format: Oscars Winners <<key_name>>
    template:
      - Oscars

Custom

Creates a collection for each custom key: key_name pair defined.

type custom
datas Strings to iterate
Keys key
Key Names key_name
Default title_format <<key_name>>
Default Template None

Example:

  • Create a collection for the various Streaming Services
  • Name the collection "[Key Name] Movies"


templates:
  streaming:
    cache_builders: 1
    smart_label: release.desc
    sync_mode: sync
    mdblist_list: https://mdblist.com/lists/plexmetamanager/<<key>>-movies
    url_poster: https://raw.githubusercontent.com/meisnate12/Plex-Meta-Manager-Images/master/streaming/<<key_name_encoded>>.jpg

dynamic_collections:
  Streaming:
    type: custom
    data:
      all-4: All 4
      appletv: Apple TV+
      bet: BET+
      britbox: BritBox
      disney: Disney+
      max: Max
      hulu: Hulu
      netflix: Netflix
      now: NOW
      paramount: Paramount+
      peacock: Peacock
      amazon-prime-video: Prime Video
    title_format: <<key_name>> Movies
    template:
      - streaming
      - shared

Exclude

Exclude this list of keys from being created into collections.

For example when making a genre dynamic collection definition you can exclude "Horror" from having a collection created from the key.

dynamic_collections:
  Genres:         # mapping name does not matter, just needs to be unique
    type: genre
    exclude:
      - Horror

Addons

Defines how multiple keys can be combined under a parent key.

For example, the addons attribute can be used to combine multiple keys, i.e. merging "MTV2", "MTV3" and "MTV (UK)" into the "MTV" collection.

dynamic_collections:
  networks:
    type: network
    addons:
      MTV:
        - MTV2
        - MTV3
        - MTV (UK)

You can also define custom keys under addons if the main key doesn't exist as a key it will be considered a custom key combining all keys into one key.

Template

Name of the template to use for these dynamic collections. Each type has its own default template, but if you want to define and use your own template you can.

Each template is passed a few template variables you can use.

  • value: The list of keys and addons
  • key: The dynamic key
  • key_name: The key after key_name_override, remove_prefix, or remove_suffix are run on it.

For example, the template below removes the limit on the smart_filter so it shows all items in each network

templates:
  network collection:
    smart_filter:
      sort_by: critic_rating.desc
      all:
        network: <<value>>
dynamic_collections:
  Networks:         # mapping name does not matter just needs to be unique
    type: network
    title_format: <<key_name>>
    template: network collection

Template Variables

Defines how template variables can be defined by key.

For example, when using type: tmdb_collection and you want to define a poster url for some collections

templates:
  my_template:
    optional:
      - my_collection_poster
    tmdb_collection_details: <<value>>
    collection_order: release
    url_poster: <<my_collection_poster>>
dynamic_collections:
  TMDb Collections:          # This name is the mapping name
    type: tmdb_collection
    remove_suffix: "Collection"
    template: my_template
    template_variables:
      my_collection_poster:
        119: https://www.themoviedb.org/t/p/original/oENY593nKRVL2PnxXsMtlh8izb4.jpg
        531241: https://www.themoviedb.org/t/p/original/nogV4th2P5QWYvQIMiWHj4CFLU9.jpg

Other Template

Name of the template to use for the other collection. Will use the same template as the rest of the dynamic collections unless specified.

Each template is passed a few template variables you can use.

  • value: The list of keys and addons
  • key: The dynamic key
  • key_name: The key after key_name_override, remove_prefix, or remove_suffix are run on it.
  • included_keys: The list of included keys
  • used_keys: The list of all keys used (included_keys and their addon keys)

Remove Prefix/Suffix

Removes the defined prefixes/suffixes from the key before its used in the collection title.

For example, when using type: tmdb_collection you may not want every collection title to end with Collection

dynamic_collections:
  TMDb Collections:          # This name is the mapping name
    type: tmdb_collection
    remove_suffix: "Collection"

Title Format

This is the format for the collection titles.

there are two special tags you can include in the title_format

  • <<key_name>> is required and is what will be replaced by the dynamic key name.
  • <<library_type>> will be replaced with either Movie, Show, or Artist depending on your library type.

Here's an example using title_format.

dynamic_collections:
  Genres:         # mapping name does not matter just needs to be unique
    type: genre
    title_format: Top 50 <<key_name>> <<library_type>>s

Key Name Override

Defines how key names can be overridden before they are formatted into collection titles.

This example uses 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.
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

Title Override

Defines how collection titles can be overridden ignoring title formatting.

Here's an example using title_override that will override the TMDb Star Wars collection which has an TMDb ID of 10 with `Star Wars Universe.

dynamic_collections:
  TMDb Collections:          # mapping name does not matter, just needs to be unique
    type: tmdb_collection
    remove_suffix: "Collection"
    title_override:
      10: Star Wars Universe

Custom Keys

Defines if custom keys are allowed. Can be true or false. Defaults to true.

Here's an example using custom_keys.

dynamic_collections:
  TMDb Collections:          # mapping name does not matter, just needs to be unique
    type: tmdb_collection
    remove_suffix: "Collection"
    custom_keys: false

Test

Will add test: true to all collections for test runs.

Here's an example using test.

dynamic_collections:
  Genres:         # mapping name does not matter just needs to be unique
    type: genre
    test: true

Sync

Will remove dynamic collections that are no longer in the creation list.

The mapping name is added as a label to any collection created using dynamic and because of this when sync is true all collections with that label not found in this run will be deleted.

Here's an example using sync.

dynamic_collections:
  Trakt Liked Lists:          # mapping name does not matter just needs to be unique
    type: trakt_liked_lists
    sync: true

Include

Define a list of keys to be made into collections.

This cannot be used with exclude.

Here's an example using include.

dynamic_collections:
  Genres:         # mapping name does not matter just needs to be unique
    type: genre
    include:
      - Action
      - Adventure
      - Animation
      - Comedy
      - Family
      - Fantasy
      - Horror
      - Romance
      - Science Fiction
      - War

Other Name

Used in combination with include. When defined, all keys not in include or addons will be combined into this collection.

This is the main reason to use include. It allows a catch-all collection for everything not defined in the config file.

Here's an example using other_name.

dynamic_collections:
  Genres:         # mapping name does not matter just needs to be unique
    type: genre
    other_name: Top Other Movies
    include:
      - Action
      - Adventure
      - Animation
      - Comedy
      - Family
      - Fantasy
      - Horror
      - Romance
      - Science Fiction
      - War