remove some extra words and clarify source location
9.9 KiB
Path Types
YAML Files are defined by their path type and path location for the metadata_path
, overlay_path
, playlist_files
, and external_templates
attributes.
They can either be on the local system, online at an url, directly from the Plex Meta Manager Configs repository, or from another Custom Repository
.
The path types are outlined as follows:
- file:
refers to a metadata file which is located within the system that PMM is being run from.- folder:
refers to a directory containing metadata files which is located within the system that PMM is being run from.- url:
refers to a metadata file which is hosted publicly on the internet.- git:
refers to a metadata file which is hosted on the Configs Repo.- repo:
refers to a metadata file which is hosted on a custom repository specified by the user with thecustom_repo
Setting Attribute.- pmm:
refers to a metadata file which is part of the built-in default metadata files.
Examples
libraries:
Movies:
metadata_path:
- 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.
- pmm: oscars
The values you'd enter here are listed in the default metadata guide.
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 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
libraries:
TV Shows:
metadata_path:
- 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 Metadata File.
Schedule
Each metadata_path
, overlay_path
, or playlist_files
can be scheduled by adding the schedule
attribute to the dictionary defining the file.
Below is an example of a scheduled Metadata File, Overlay File, and Playlist File:
libraries:
Movies:
metadata_path:
- file: config/Movies.yml
schedule: weekly(friday)
- pmm: actors
schedule: weekly(saturday)
overlay_path:
- pmm: imdb
schedule: weekly(monday)
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.
libraries:
Movies:
metadata_path:
- file: config/Movies.yml
asset_directory: assets/Movies
- pmm: actors
asset_directory: assets/people
overlay_path:
- pmm: imdb
playlist_files:
- file: config/Playlists.yml
asset_directory:
- assets/playlists1
- assets/playlists2
Metadata Path
The metadata_path
attribute is defined under the libraries
attribute in your Configuration File.
Example
In this example, multiple metadata file path types are defined for the "TV Shows"
library:
libraries:
TV Shows:
metadata_path:
- 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 metadata file namedTVShows.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 calledTV Shows
, and then load any metadata files within that directory. - Then, look in the defaults folder within the local PMM folder [or docker container] for a file called
tmdb.yml
which it finds here. - Then, look within the Custom Defined Repo for a file called
charts.yml
. - Finally, load the metadata file located at
https://somewhere.com/PopularTV.yml
Overlay Path
The overlay_path
attribute is defined under the libraries
attribute in your Configuration File.
Example
In this example, multiple overlay file path types are defined for the "TV Shows"
library:
libraries:
TV Shows:
overlay_path:
- 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 metadata file namedoverlays.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 calledoverlay configs
, and then load any metadata files within that directory. - Then, look in the defaults folder 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 metadata file located at
https://somewhere.com/Overlays.yml
Playlist Files
The playlist_files
at the top level in your Configuration File.
Example
In this example, multiple playlist_files
attribute path types are defined:
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 namedPlaylists.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 calledPlaylists
, and then load any playlist files within that directory. - Then, look in the defaults folder within the local PMM folder [or docker container] for a file called
playlist.yml
which it finds here. - 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
attribute is defined at the top level in your Metadata File.
Example
In this example, multiple external template file path types are defined:
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 metadata file namedtemplates.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 calledtemplates
, and then load any metadata files within that directory. - Then, load the metadata file located at
https://somewhere.com/templates.yml
. - Then, look in the defaults folder within the local PMM folder [or docker container] for a file called
templates.yml
which it finds here. - Finally, look at the within the Custom Defined Repo for a file called
templates.yml
.