When using Plex Meta Manager, the structure of each library is made using File Blocks
Example Library Structure
In the above example,
collection_files is the type of File, which tells PMM that the entries that follow will
create/update collections and
- pmm: is the type of Path, which PMM that the file it is looking for is a PMM
These ideas will be further outlined on this page.
Files define the structure and format for creating Collections, Overlays, Playlists, and Metadata Edits within your libraries.
Files are modular and when properly leveraged, they not only facilitate the management of your library's collections and metadata but also serve as a crucial backup resource in case a restore is necessary.
These are the File types that can be utilized against Plex servers:
|Defines the data for building collections, allowing you to group and showcase your library in unique ways.
|Defines the data for building overlays, allowing you to place information such as resolutions and ratings onto your posters.
|Defines the data for editing metadata, allowing you to find and manipulate the metadata on individual items within your library.
|Defines the data for building playlists, allowing you to combine media from multiple libraries and share them with users on your server.
|Defines templates in external files, allowing you to use the same templates across multiple other files.
Example File Blocks (click to expand)
In this example, multiple file blocks are defined for the
"TV Shows" library:
Unlike the others, Playlist Files are not defined per-library.
Within the above example, PMM will:
First, look within the root of the PMM directory (also known as
config/) for a collection file named
TVShows.yml. If this file does not exist, PMM will skip the entry and move to the next one in the list.
Then, look within the root of the PMM directory (also known as
config/) for a directory called
TV Shows, and then load any collection files within that directory.
Then, look in the defaults folder within the local PMM folder [or docker container] for a file called
Then, look within the Custom Defined Repo for a file called
Finally, load the playlist file located at
Each time a file is called it's going to use what we call a "File Block". Each block must have the file location type and path and can have other attributes to add more control to that file.
Every file block under the parent attribute begins with a
This example has 2 blocks each using location type
pmm with the path being
imdb respectively under
the parent attribute
Location Types and Paths¶
There are multiple location types that can be used to call a file. They can either be on the local system, online at an
url, part of the PMM Defaults, directly from the
PMM User Configs repository, or from another
The location types are outlined as follows:
Used to run a file which is located within the system that PMM is being run from.
file - Used to run a local file.¶
File locations need to be accessible to PMM at those paths; this is typically only something you need to consider when using Docker.
Used to run all files located in a directory which is located within the system that PMM is being
folder - Used to run all local files in a directory.¶
Folder locations need to be accessible to PMM at those paths; this is typically only something you need to consider when using Docker.
Used to run a file hosted publicly on the internet and accessible at a URL.
url - Used to run a file hosted at a URL.¶
This needs to point directly to the YAML file. A common error is using a gitHub link that points to the page displaying the YAML. In gitHub, for instance, click on the "Raw" button and use that link.
Used to run a built-in PMM Defaults file. The values you'd enter here are listed in the
default usage guide.
pmm - Used to run a built-in PMM Defaults file.¶
Used to run a file hosted on the
PMM User Configs repository.
git - Used to run a file hosted on the PMM User Configs repository.¶
Note that you enter the bits of the items path relative to the top level of the repo [
meisnate12/People] and you
don't need the
Used to run a file which is hosted on a repo specified by the user with the
repo - Used to run a file hosted on a custom repository.¶
custom_repo Setting Attribute.
Note that as with
git you enter the bits of the items path relative to repo [
meisnate12/People] and you don't
Other Block Attributes¶
You can have some control of the files from inside your Configuration file by using these block attributes.
Passes all given Template Variables to
every template in the file.
template_variables - Used to define Custom Template Variables for a file.¶
Note: the file has to be properly set up to use the variables.
Accepted Values: Dictionary of values specified by each particular file.
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
What these variables will do depends on how they're defined in the Collection File.
Used to schedule when this file is run using the schedule options.
schedule - Used to schedule when a file is run.¶
This does not work with Overlays as they cannot be scheduled individually. Use the
schedule_overlays Library Attribute to schedule Overlays.
Accepted Values: Any schedule option
Specify the directory where assets (posters, backgrounds, etc) are located for this
asset_directory - Used to define Asset Directories for a file.¶
Assets can be stored anywhere on the host system that PMM has visibility of (i.e. if using docker, the directory must be mounted/visible to the docker container).
Accepted Values: Any directory
[Directory containing YAML config]/assets
- file: config/Movies.yml
- pmm: actors
- pmm: imdb
- file: config/Playlists.yml