# Requirements Update (requirements will need to be reinstalled)
# Requirements Update (requirements will need to be reinstalled)
Updated arrapi requirement to 1.4.7
Updated GitPython requirement to 3.1.40
Updated GitPython requirement to 3.1.40
Updated lxml requirement to 5.0.0
Updated num2words requirement to 0.5.13
Updated num2words requirement to 0.5.13
Updated pillow requirement to 10.1.0
Updated pillow requirement to 10.2.0
Updated PlexAPI requirement to 4.15.6
Updated PlexAPI requirement to 4.15.7
Updated psutil requirement to 5.9.7
Updated ruamel.yaml requirement to 0.18.5
Updated ruamel.yaml requirement to 0.18.5
Updated schedule requirement to 1.2.1
Updated schedule requirement to 1.2.1
Updated tmdbapis requirement to 1.2.2
Updated tmdbapis requirement to 1.2.6
Added setuptools requirement at 69.0.3
# New Features
# New Features
Introduced batchMultiEdits - this is a major feature introduction that we hope will increase performance for all users. This is a behind-the-scenes change that the user does not need to do anything to take advantage of.
Introduced (Run Order)[https://metamanager.wiki/en/latest/config/settings/#run-order] attribute which allows the user to amend the way that each library is executed.
Redesigned Wiki with new landing page and new layout using mkdocs.
Introduced [IMDb Search Builder](https://metamanager.wiki/en/latest/files/builders/imdb/#imdb-search) following IMDb UI rework.
- `imdb_list` can no longer be used for Title or Keyword Searches, these must be transferred to `imdb_search` builders.
Introduced [IMDb Award Builder](https://metamanager.wiki/en/latest/files/builders/imdb/#imdb-award).
Added IMDb Awards to [Dynamic Collection Types](https://metamanager.wiki/en/latest/files/dynamic_types/#imdb-awards)
Reintroduced [Flixpatrol Builder](https://metamanager.wiki/en/latest/builders/flixpatrol/) following introduction of paywalled API.
Reintroduced [Flixpatrol Builder](https://metamanager.wiki/en/latest/builders/flixpatrol/) following introduction of paywalled API.
Added a JSON Schema file which will assist users in validating their configuration file when using a code-aware text editor such as VSCode and VSCodium. This is a work in progress and will help identify basic errors such as specifying "yes" when the available options are "true" and "false"
- If you run into any validation issues which you don't understand, ask in our Discord Server
# Updates
Redesigned Wiki with new landing page and new layout using mkdocs.
Introduced batchMultiEdits - this is a major feature introduction that we hope will increase performance for all users. This is a behind-the-scenes change that the user does not need to do anything to take advantage of.
Updated `overlay_path` to `overlay_files` and split `metadata_path` into `collection_files` and `metadata_files`.
Moved `remove_overalys`, `reapply_overlays`, and `reset_overlays` to the [library level](https://metamanager.wiki/en/latest/config/libraries/#remove-overlays) instead of under `overlay_path`.
Removed `schedule` from under `overlay_path` and replaced it with the library level attribute [`schedule_overlays`](https://metamanager.wiki/en/nightly/config/libraries/#schedule-overlays).
Removed library-level and collection-level logging, all logging is handled in the meta.log
Added the `score` attribute to the [`anilist_userlist`](https://metamanager.wiki/en/latest/files/builders/anilist/#anilist-userlist) builder.
Added the `episode_actor` attribute to the [`plex_search`](https://metamanager.wiki/en/latest/files/builders/plex/#plex-search) builder.
# Defaults
[PMM Default Award Files](https://metamanager.wiki/en/latest/defaults/files/#award-collections) have been reworked to use the `imdb_award` builder and `imdb_awards` dynamic collection type.
Added Trakt Anticipated to [Trakt Chart Defaults Collections](https://metamanager.wiki/en/latest/defaults/chart/trakt/).
Added Trakt Anticipated to [Trakt Chart Defaults Collections](https://metamanager.wiki/en/latest/defaults/chart/trakt/).
Added information on Python 3.12 support in the [Local Install Guides](https://metamanager.wiki/en/nightly/pmm/install/guides/local/#if-you-are-running-python-312)
Added DE Content Rating as a PMM Default [Collection](https://metamanager.wiki/en/latest/defaults/both/content_rating_de/) and [Overlay](https://metamanager.wiki/en/latest/defaults/overlays/content_rating_de/)
Removed library- and collection-level logging, all logging is handled in the meta.log
Added `schedule` and `schedule_<<key>>` template variables to most defaults.
# Bug Fixes
# Bug Fixes
Fixed `(404) not_found` error that presented itself in PMS 1.32.7, as outlined [here](https://discord.com/channels/822460010649878528/1099773891733377065/1174751954367422585)
Fixed `(404) not_found` error that presented itself in PMS 1.32.7, as outlined [here](https://discord.com/channels/822460010649878528/1099773891733377065/1174751954367422585)
@ -22,3 +44,8 @@ Fixed issue that would prevent `file_poster` from overriding `url_poster` in the
Removed `--cache-libraries` Environment Variable due to inconsistent behaviour that could cause issues.
Removed `--cache-libraries` Environment Variable due to inconsistent behaviour that could cause issues.
Fixed issue with `mass_poster_update` incorrectly updating episode posters when it shouldn't.
Fixed issue with `mass_poster_update` incorrectly updating episode posters when it shouldn't.
Fixed issue with `delete_collection_named` running in a collection even if the collection wasn't scheduled to run.
Fixed issue with `delete_collection_named` running in a collection even if the collection wasn't scheduled to run.
- pmm: audio_language # English, French, Arabic, German, etc. audio language
- pmm: audio_language # English, French, Arabic, German, etc. audio language
- pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style
- pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style
template_variables:
template_variables:
style: standards
style: standards
- pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc.
- pmm: studio # DreamWorks Studios, Lucasfilm Ltd, etc.
- pmm: seasonal # Christmas, Halloween, etc.
- pmm: seasonal # Christmas, Halloween, etc.
template_variables: # Disable any US-specific seasonal collections
template_variables: # Disable any US-specific seasonal collections
schedule_independence: never
schedule_independence: never
schedule_thanksgiving: never
schedule_thanksgiving: never
schedule_memorial: never
schedule_memorial: never
schedule_labor: never
schedule_labor: never
- pmm: streaming # Streaming on Disney+, Netflix, etc.
- pmm: streaming # Streaming on Disney+, Netflix, etc.
template_variables:
template_variables:
originals_only: true # Only create collections for Original Content (i.e. Netflix Originals)
originals_only: true # Only create collections for Original Content (i.e. Netflix Originals)
- pmm: universe # Marvel Cinematic Universe, Wizarding World, etc.
- pmm: universe # Marvel Cinematic Universe, Wizarding World, etc.
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 - can cause image bloat
#reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat
overlay_files:
overlay_files:
- remove_overlays: false # Set to true if you want to remove overlays
- pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. style: standard/compact. compact is default
# - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat
- pmm: resolution # 4K HDR, 1080P FHD, etc.
# - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat
- pmm: ribbon # Used for ribbon in bottom right
- pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. style: standard/compact. compact is default
- pmm: streaming # Streaming on Disney+, Netflix, etc.
- pmm: resolution # 4K HDR, 1080P FHD, etc.
- pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left
- pmm: ribbon # Used for ribbon in bottom right
- pmm: streaming # Streaming on Disney+, Netflix, etc.
- pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left
settings:
settings:
asset_directory:
asset_directory:
- config/assets
- config/assets
operations:
operations:
split_duplicates: false
split_duplicates: false
@ -69,70 +71,70 @@
collection_mode: hide # hide the collections within the "library" tab in Plex.
collection_mode: hide # hide the collections within the "library" tab in Plex.
placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators, avoids a plex bug.
placeholder_imdb_id: tt1190634 # The Boys (2019) placeholder id for the separators, avoids a plex bug.
collection_files:
collection_files:
- pmm: separator_award # An "index card"
- pmm: separator_award # An "index card"
- pmm: bafta # BAFTA Awards
- pmm: bafta # BAFTA Awards
template_variables: # Show collections from current_year-10 onwards.
template_variables: # Show collections from current_year-10 onwards.
data:
data:
starting: current_year-10
starting: current_year-10
ending: current_year
ending: current_year
- pmm: golden # Golden Globes Awards
- pmm: golden # Golden Globes Awards
template_variables: # Show collections from current_year-10 onwards.
template_variables: # Show collections from current_year-10 onwards.
data:
data:
starting: current_year-10
starting: current_year-10
ending: current_year
ending: current_year
- pmm: oscars # The Oscars
- pmm: oscars # The Oscars
template_variables: # Show collections from current_year-10 onwards.
template_variables: # Show collections from current_year-10 onwards.
- pmm: audio_language # English, French, Arabic, German, etc. audio language
- pmm: audio_language # English, French, Arabic, German, etc. audio language
- pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style
- pmm: resolution # 4K HDR, 1080P FHD, etc. with the standards style
template_variables:
template_variables:
style: standards
style: standards
- pmm: network # ABC, CBC, NBC, FOX, etc.
- pmm: network # ABC, CBC, NBC, FOX, etc.
- pmm: streaming # Streaming on Disney+, Netflix, etc.
- pmm: streaming # Streaming on Disney+, Netflix, etc.
template_variables:
template_variables:
originals_only: true # Only create collections for Original Content (i.e. Netflix Originals)
originals_only: true # Only create collections for Original Content (i.e. Netflix Originals)
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 - can cause image bloat
#reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat
overlay_files:
overlay_files:
- remove_overlays: false # Set to true if you want to remove overlays
- pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. on show and episode
# - reapply_overlays: false # If you are doing a lot of testing and changes like me, keep this to true to always reapply overlays - can cause image bloat
- pmm: audio_codec
# - reset_overlays: tmdb # if you want to reset the poster to default poster from tmdb - can cause image bloat
template_variables:
- pmm: audio_codec # FLAC, DTS-X, TrueHD, etc. on show and episode
builder_level: episode
- pmm: audio_codec
- pmm: episode_info # S##E## information in bottom right on episode
template_variables:
template_variables:
builder_level: episode
builder_level: episode
- pmm: episode_info # S##E## information in bottom right on episode
- pmm: resolution # 4K HDR, 1080P FHD, etc. on show, episode, and season
template_variables:
- pmm: resolution
builder_level: episode
template_variables:
- pmm: resolution # 4K HDR, 1080P FHD, etc. on show, episode, and season
builder_level: episode
- pmm: resolution
- pmm: resolution
template_variables:
template_variables:
builder_level: episode
builder_level: season
- pmm: resolution
- pmm: ribbon # Used for ribbon in bottom right on show
template_variables:
- pmm: status # Airing, Returning, Ended, Canceled on show
builder_level: season
- pmm: versions # Will show duplicates for that media item on show and episode
- pmm: ribbon # Used for ribbon in bottom right on show
- pmm: versions
- pmm: status # Airing, Returning, Ended, Canceled on show
template_variables:
- pmm: versions # Will show duplicates for that media item on show and episode
builder_level: episode
- pmm: versions
- pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left on show, episode, and season
template_variables:
- pmm: video_format
builder_level: episode
template_variables:
- pmm: video_format # Remux, DVD, Blu-Ray, etc. in bottom left on show, episode, and season
builder_level: episode
- pmm: video_format
template_variables:
builder_level: episode
settings:
settings:
asset_directory:
asset_directory:
- config/assets
- config/assets
operations:
operations:
split_duplicates: false
split_duplicates: false
assets_for_all: false
assets_for_all: false
playlist_files:
playlist_files:
- pmm: playlist
- pmm: playlist
template_variables:
template_variables:
libraries: Movies, TV Shows # Must match the names of your libraries in Plex.
libraries: Movies, TV Shows # Must match the names of your libraries in Plex.
@ -138,6 +138,12 @@ Finds every item in an [IMDb Event](https://www.imdb.com/event/).
| `category_filter` | Filter by the Category heading. Can only accept multiple values as a list.<br>**Options:** Any Gold/Yellow Category heading on an Event Page. |
| `category_filter` | Filter by the Category heading. Can only accept multiple values as a list.<br>**Options:** Any Gold/Yellow Category heading on an Event Page. |
| `winning` | Filter by if the Item Won the award.<br>**Options:** `true`/`false`<br>**Default:** `false` |
| `winning` | Filter by if the Item Won the award.<br>**Options:** `true`/`false`<br>**Default:** `false` |
??? example "Example Award and Category Filter"
In the below example, "Grand Jury Prize" is the award_filter, and "Documentary" is the `category_filter`. You can use both of these filters together.
![imdbfilter.png](../images/imdbfilter.png)
1. When using multiple years the only available Event IDs are:
1. When using multiple years the only available Event IDs are:
@ -50,8 +50,8 @@ I then call "MyOverlays.yml" in my [Configuration File](../config/overview.md) w
```yaml
```yaml
libraries:
libraries:
Movies: #(1)!
Movies: #(1)!
remove_overlays: false
overlay_files:
overlay_files:
- remove_overlays: false
- file: config/MyOverlays.yml #(2)!
- file: config/MyOverlays.yml #(2)!
```
```
@ -112,7 +112,7 @@ There is an attribute called `reapply_overlays` which, when set to true, will fo
* Ensure `reapply_overlays` is set to `false` if you see it in your Configuration File. If it has previously been set to true we recommend using [Plex Image Cleanup](../pmm/scripts/image-cleanup.md) to get rid of the bloat.
* Ensure `reapply_overlays` is set to `false` if you see it in your Configuration File. If it has previously been set to true we recommend using [Plex Image Cleanup](../pmm/scripts/image-cleanup.md) to get rid of the bloat.
To remove all overlays from your library, add `remove_overlays: true` to the `overlay_files` [Libraries Attribute](../config/libraries.md).**
To remove all overlays from your library, add the [`remove_overlays` library attribute](../config/libraries.md#remove-overlays) set to `true`.**
* See the above note on Plex Meta Manager not removing the overlaid images, this is still true here.
* See the above note on Plex Meta Manager not removing the overlaid images, this is still true here.
This page aims to provide knowledge based on combined user experience, and to answer the frequent questions that we are asked in our
This page aims to provide knowledge based on combined user experience, and to answer the frequent questions that we are asked in our
@ -12,7 +12,7 @@ If you have a question that is not answered here, try entering some keywords int
This sections aims to answer the most commonly asked questions that users have.
This sections aims to answer the most commonly asked questions that users have.
#### PMM Versions & Updating
### PMM Versions & Updating
The commands here should work in any terminal on the respective platforms, but that can't be guaranteed. If you know shortcuts for some of these things, go ahead and use them. For example, in many terminals, `cd ~/Plex-Meta-Manager` is the same as `cd /Users/YOUR_USERNAME/Plex-Meta-Manager`.
The commands here should work in any terminal on the respective platforms, but that can't be guaranteed. If you know shortcuts for some of these things, go ahead and use them. For example, in many terminals, `cd ~/Plex-Meta-Manager` is the same as `cd /Users/YOUR_USERNAME/Plex-Meta-Manager`.
@ -300,7 +300,7 @@ Your PMM installation may not be located at the paths referenced below. These a
If you are using Docker on a NAS like Synology or UNRaid, they will provide some means of doing those two things.
If you are using Docker on a NAS like Synology or UNRaid, they will provide some means of doing those two things.
#### Performance & Scheduling
### Performance & Scheduling
??? question "Any tips on increasing PMM performance?"
??? question "Any tips on increasing PMM performance?"
@ -347,7 +347,7 @@ Your PMM installation may not be located at the paths referenced below. These a
- pmm: resolution
- pmm: resolution
```
```
#### Errors & Issues
### Errors & Issues
??? question "Why doesn't PMM let me enter my authentication information for Trakt/MAL?"
??? question "Why doesn't PMM let me enter my authentication information for Trakt/MAL?"
@ -379,3 +379,114 @@ Your PMM installation may not be located at the paths referenced below. These a
:two: Check the plex logs (container or other) for the "Busy DB Sleeping for 200ms)
:two: Check the plex logs (container or other) for the "Busy DB Sleeping for 200ms)
There is nothing that PMM or our support staff can really do to resolve a 500 error.
There is nothing that PMM or our support staff can really do to resolve a 500 error.
## Knowledgebase
This section aims to provide some insight as to articles/information that we feel is important to document as they may pop up infrequently but often enough to require entry here.
### PMM 1.20 Release Changes
With the release of PMM 1.20, several changes have taken place that we would like to make you aware of, please read the below document thoroughly!
??? blank "`metadata_path` and `overlay_path` are now legacy attributes (click to expand).<aclass="headerlink"href="#metadata-overlay-path"title="Permanent link">¶</a>"
<divid="metadata-overlay-path"/>
The attributes `metadata_path` and `overlay_path` are now legacy, and will likely produce an error `metadata attribute is required` when running PMM.
We have new attributes: `collection_files`, `overlay_files` and `metadata_files` which you can read more about on the [Libraries Attributes page](../config/libraries.md#attributes)
Whilst this error can be ignored, we strongly advise you to move over to the new attributes, which can be done following this guidance:
:fontawesome-solid-1: If your YAML file contains `collections:` or is a PMM Defaults Collection File then it belongs under `collection_files`.
:fontawesome-solid-2: If your YAML file contains `overlays:` or is a PMM Defaults Overlay File then it belongs under `overlay_files`
:fontawesome-solid-3: If your YAML file contains `metadata:` then it belongs under `metadata_files`
If your file contains both `collections:` and `metadata:` then it should go in both `collection_files` and `metadata_files`
If you are unsure on the above, the majority of `metadata_path` items will now fall under `collection_files`, but you can ask on the Discord.
Below is an example of the new attributes in use:
```yaml
libraries:
Movies:
collection_files: #(1)!
- file: config/Movies.yml #(2)!
- pmm: imdb #(2)!
metadata_files: #(3)!
- file: config/MetadataEdits.yml #(4)!
overlay_files: #(5)!
- file: config/Overlays.yml #(6)!
- pmm: audio_codec #(6)!
```
1. This attribute used to be `metadata_path` and defines files that will relate to Collections
2. These files are placed within `collection_files` because they define how Collections are built/maintained.
3. This attribute used to be `metadata_path` and defines files that will relate to Metadata Edits
4. These files are placed within `metadata_files` because they define Metadata Edits rather than collections.
5. This attribute used to be `overlay_path` and defines files that will relate to Overlays
6. These files are placed within `overlay_files` because they define how Overlays are built/maintained.
??? blank "`remove_` `reset_``reapply_` and `schedule_` attributes for `overlays` are now Library Attributes (click to expand).<aclass="headerlink"href="#overlay-library-attributes"title="Permanent link">¶</a>"
<divid="overlay-library-attributes"/>
The attributes `remove_overlays`, `reset_overlays`, `reapply_overlays` and `schedule_overlays` are now Library Attributes and are called at the library level rather than within `overlay_path.
This change has been made to make these attributes consistent with other attributes of a similar nature.
Whilst the previous method still works, we strongly advise you to move over to the new attributes, which can be done by looking at the following sample YAML:
```yaml
libraries:
Movies:
remove_overlays: false
reapply_overlays: false #(1)!
reset_overlays: false
schedule_overlays: daily
overlay_files:
- pmm: audio_codec
```
1. We strongly advise never setting this to `true` as it can cause [Image Bloat](scripts/image-cleanup.md)
??? blank "`imdb_list` no longer works for Title or Keyword search URLs (click to expand).<aclass="headerlink"href="#imdb-search"title="Permanent link">¶</a>"
<divid="imdb-search"/>
As a result of IMDb changing their back-end code, `imdb_list` can no longer be used for URLs which start with `https://www.imdb.com/search/title/` or `https://www.imdb.com/search/keyword/`
All URLs used with `imdb_list`**must** start with `https://www.imdb.com/list/`
We have introduced the [IMDb Search Builder](../files/builders/imdb.md#imdb-search) which replaces the functionality that `search/title/` and `search/keyword/` used to provide.
As an example, the `imdb_search` builder for `https://www.imdb.com/search/keyword/?keywords=christmas-movie` would be:
```yaml
collections:
Christmas Movies:
imdb_search:
keyword: christmas movie
```
And the `imdb_search` builder for `https://www.imdb.com/search/title/?title_type=feature,tv_movie,tv_special,video&num_votes=100,&keywords=spy,espionage` would be:
```yaml
collections:
Spy Movies:
imdb_search:
type: movie, tv_movie, tv_special, video
votes.gte: 100
keyword.any: spy, espionage
```
??? blank "FlixPatrol Default File and Builder have been reworked (click to expand).<aclass="headerlink"href="#flixpatrol"title="Permanent link">¶</a>"
<divid="flixpatrol"/>
Due to FlixPatrol moving a lot of their data behind a paywall, the existing setup no longer works.
We have reintroduced FlixPatrol as a [Builder](../files/builders/flixpatrol.md) and [PMM Defaults File](../defaults/chart/flixpatrol.md), we recommdend reading the documentation and updating your config/YAML files to suit.
@ -355,17 +355,6 @@ An advantage of doing this in a virtual environment is that in the event somethi
.\pmm-venv\Scripts\activate
.\pmm-venv\Scripts\activate
```
```
### If you are running Python 3.12
with the virtual environment activated, type this into your terminal:
```
pip install setuptools
```
This will update a piece of the Python infrastructure and prevent an error later.
### Installing requirements
### Installing requirements
Plex-Meta-Manager, like every other Python script, depends on support libraries that manage things like connections to Plex, or getting things from the internet, or writing files and so on.
Plex-Meta-Manager, like every other Python script, depends on support libraries that manage things like connections to Plex, or getting things from the internet, or writing files and so on.
@ -24,22 +24,6 @@ I’ve removed some of the lines for space, but have left the important bits:
You can see there that PMM found its config file, was able to connect to TMDb, was able to connect to Plex, and then failed trying to read the “Movies-NOSUCHLIBRARY" library, which of course doesn’t exist.
You can see there that PMM found its config file, was able to connect to TMDb, was able to connect to Plex, and then failed trying to read the “Movies-NOSUCHLIBRARY" library, which of course doesn’t exist.
<details>
<summary>I got a ModuleError instead</summary>
If you see this error instead:
```
ModuleNotFoundError: No module named 'pkg_resources'
```
Chances are you're using Python 3.12 and skipped the bit above about Python 3.12.
Type this into your terminal
```
pip install setuptools
```
Then try the run command from above again.
</details>
Open the config file again and change "Movies-NOSUCHLIBRARY" to reflect *your own* Movie library in Plex.
Open the config file again and change "Movies-NOSUCHLIBRARY" to reflect *your own* Movie library in Plex.
Say my Movies library is called “All The Movies", so mine looks like this:
Say my Movies library is called “All The Movies", so mine looks like this: