I'm hoping this is something simple I'm missing, but for a lot of Disney+ and Apple TV+ shows Kometa will run before Plex has an official poster/screenshot for the episode so Kometa applies the overlay to the auto-generated screenshot, which usually isn't very good. I have manually changed the episode poster in Plex, but Kometa doesn't reapply the overlay because it thinks it's already done that episode. How can I have Kometa reapply the overlay to the new poster/screenshot?
#How to reapply overlay if episode poster is changed?
1 messages ยท Page 1 of 1 (latest)
Welcome @viscid patio!
Someone from <@&938443185347244033> will assist when they're available.
Including meta.log from the beginning is a huge help. Type !logs for more information.
After attaching your log, do not forget to hit the green check boxes when prompted by our bot.
You can press the "Close Post" button above or type /close at any time to close this post.
Simplest would be to use the asset directory to set the new art.
The other way is to remove the "overlay" label from the episode when you change the art, which unfortunately can't be done in the UI so you need to use Kometa or some other script to do so.
Another option would be using something like TitleCardManager.
Understanding the Overlay label
When Kometa applies an overlay, it attaches an Overlay label to the item so that it knows what has an Overlay and what does not. If you [or plex] changes the image, then Kometa has no way of knowing this. The easiest way to force overlays to apply to a "new" image is to remove the Overlay label either before or after you change the image.
Unfortunately, Plex does not display the labels attached to Seasons or Episodes, so we have to use collections to force a remove of these labels (we make sure the collection isn't actually built).
Removing Season Overlay Label
collections:
Remove Overlay Labels:
build_collection: false
builder_level: season
item_label.remove: Overlay
plex_search:
all:
season_label: Overlay
title: NAME OF SHOW HERE
Removing Episode Overlay Label
collections:
Remove Overlay Labels:
build_collection: false
builder_level: episode
item_label.remove: Overlay
plex_search:
all:
episode_label: Overlay
title: NAME OF SHOW HERE
oof, thank you for the reply. not as easy as I was hoping, like it is for updating movie posters
I'm confused because when I navigate to the assets folder in Kometa, it has folders for all my TV shows and Movies but they're all empty
This is normal and expected since Kometa does not put anything in the asset directory [aside from one very specific circumstance]. It's up to you to put posters there,
If you want to copy the backup clean art that Kometa took when it applied overlays over into the asset directory, I have a script that can do that.
If you want a UI that you can use to choose posters from Plex to download into an asset directory, I have a script that can do that as well.
the latter seems more useful for my use case
Well, if you are generally happy with the current images, that first script will populate the asset directory in seconds to minutes with no clickety-click for everything in the library.
You can then use the second to replace the ones you don't like.
hmmm, so i'm only looking to replace the images for like 10 episodes
i've already chosen new ones in plex, just want Kometa to reapply overlays
i'm assuming your first script would do my entire library? which that seems overkill since i have 10k+ episodes
Personally, I think going all in on assets is the way to go.
Sure, you can use assets for just those 10 episodes. That would solve the immediate problem. However, if you need to rebuild this library at some point, having all the art in assets would enable you to reapply all the custom art you have chosen for everything else in your libraries in one Kometa run. If you don't have that art in an asset directory, all the work you've done to set custom art on everything else will be lost.
Yes, that first script would do your whole library, but the images it is using are already sitting on disk in your Kometa config folder so it's just moving local files into a new file structure. Won't use any more space or download anything from Plex so it's quite fast. Then all your custom art is in one place, able to be restored or easily updated if need be, and you never have to think about "Overlay" labels again.
ok, i'll give it a try
The first script is originals-to-assets and the second is the new Plex Image Picker.
#mediascripts-support
repo linked in header
oof, i really appreciate all your help but that may be above my level of expertise
I have everything running on Unraid and know very little about python unfortunately
I used a similar script to remove the Overlay label, I asked GPT to modify it so it should remove every episodes of the SHOW_TITLE you set.
But you need to know how to run python and install plexapi lib, you can still ask gpt for how to install them ๐
from plexapi.server import PlexServer
# Plex config
PLEX_URL = 'http://192.168.31.114:32400' # Change if needed
PLEX_TOKEN = 'xxxxx' # Replace with your actual token
LIBRARY_NAME = 'Series TV'
SHOW_TITLE = 'Black Mirror'
LABEL_TO_REMOVE = 'Overlay'
def main():
plex = PlexServer(PLEX_URL, PLEX_TOKEN)
library = plex.library.section(LIBRARY_NAME)
print(f"๐ Looking for show '{SHOW_TITLE}' in library '{LIBRARY_NAME}'...")
try:
show = library.get(SHOW_TITLE)
except Exception as e:
print(f"โ Error finding show '{SHOW_TITLE}': {e}")
return
total_removed = 0
for season in show.seasons():
print(f"๐ Season: {season.title}")
for episode in season.episodes():
labels = [label.tag for label in episode.labels]
if LABEL_TO_REMOVE in labels:
print(f"โ Removing label from: {show.title} - {season.title} - {episode.title}")
episode.removeLabel([LABEL_TO_REMOVE])
total_removed += 1
print(f"โ
Removed label '{LABEL_TO_REMOVE}' from {total_removed} episode(s) of '{SHOW_TITLE}'.")
if __name__ == "__main__":
main()
You could run a script like this inside the Kometa container, where all the prerequisites would be met.
ok, so I tried doing the first solution Mr. Carrot suggested. I created RemoveOverlays.yml and placed it in the Kometa config directory and it contains the following code:
collections:
Remove Overlay Labels:
build_collection: false
builder_level: episode
item_label.remove: Overlay
plex_search:
all:
episode_label: Overlay
title: Andor (2022) [tvdbid-393189]
Then I added the following code in the TV Shows section of my config.yml file
collection_files:
- file: config/RemoveOverlays.yml
I re-ran Kometa but it still didn't remove/update my episode overlays for Andor. Any suggestions?
Is this the title of that show as shown in Plex?
title: Andor (2022) [tvdbid-393189]
No, that's the Folder name
That search is on title, not folder name.
If that's the title as displayed in Plex.
it is
antwanchild used !aenh
@viscid patio, anything else needed here? If not, please type /close and hit enter. Please respond within 24 hours of this message or it will be archived.