I’ve been trying to find a decent why to “fix” this issue, for the hopefully small amount of users. Right now as I see it, if you do not have local assets (posters stored locally inside same directory as the title’s video file) then this is not really a fix and is just a way to get back to baseline (using the default posters used when matched). The issue impacts Movie and Episode posters.
The solution is to simply unlock the posters for the affected titles then refresh the metadata for that item. If local assets are present they’ll get picked, if not then you’ll get the same poster you would get if you matched the title.
This is a simple python script that is utilizing the amazing python-PlexAPI library. Because it’s python you can run it on anything where python can be installed and as long as that machine can access your PMS this should work.
from plexapi.server import PlexServer
IP_ADDRESS = "http://localhost:32400"
TOKEN = "YOUR_PLEX_TOKEN"
LIBRARY = "Movies"
plex = PlexServer(IP_ADDRESS, TOKEN)
library = plex.library.section(LIBRARY)
if library.type == "movie":
for movie in library.all(includeGuids=False):
for poster in movie.posters():
if poster.ratingKey.startswith("media") and poster.provider is None and poster.selected is True:
print(f"Unlocking posters for movie: {movie.title}")
# movie.unlockPoster()
# movie.refresh()
elif library.type == "show":
for show in library.all(includeGuids=False):
for episode in show.episodes(includeGuids=False):
for poster in episode.posters():
if poster.ratingKey.startswith("media") and poster.provider is None and poster.selected is True:
print(f"Unlocking posters for Show: {episode.grandparentTitle} - {episode.parentTitle}: {episode.title}")
# episode.unlockPoster()
# episode.refresh()
else:
print("Nothing to do...")
The script iterates through the selected library looking for any items that would have been affected by this analyzer issue.
- This will likely be slow to run, especially if you have a large library.
- The
includeGuids=False
does make it a bit faster. - Even slower on Show libraries with many episodes - the issue only affects episodes not seasons or show posters.
- The
- I have commented out the
*.unlockPoster()
and*.refresh()
intentionally in case you wanted to perform a dry run of this and confirm the affected titles. - Change the
LIBRARY
variable to whatever your library naming is for any affected Movie or Show libraries.
The if
statement is an attempt to be as strict as possible to identify any affected titles. You can view any of your media item’s XML details (movies or episodes) to see where these values are being pulled. Using the XML detail link to view the item’s XML, add /posters
after the ratingKey value to see the title’s posters XML (IP:32400/library/metadata/156974/posters?
).
The other option is to use @SwiftPanda16 script that would pick a poster from an external source. Or as some have already done, use a backup. My apologizes to anyone stuck by this.
Adding another possible solution: Movie Posters Disappeared and are now Thumbnails - #3 by Gaudfather
If you need assistance with getting this running please DM me.