from plexapi.myplex import MyPlexAccount from plexapi.server import PlexServer from plexapi.media import Media from pprint import pprint import sys try: import apiconfig except: print("Error!") print(" \"apiconfig.py\" seems to be missing!") print(" Have you copied the default config to \"apiconfig.py\" and made appropriate edits?") print() sys.exit() colcontents = {} for col in apiconfig.colmap.values(): colcontents[col] = [] plex = PlexServer(apiconfig.url, apiconfig.apikey) print("Building collection contents lists...") for col in apiconfig.colmap.values(): videos = plex.library.section(apiconfig.libraryname).search(collection=col) for video in videos: colcontents[col].append(video.title) print("Checking collections for each movie...") videos = plex.library.section(apiconfig.libraryname).all() for video in videos: file = None for part in video.iterParts(): if file == None: file = part.file [top_folder, junk] = file[len(apiconfig.mediafolder):].split("/", 1) if video.title not in colcontents[apiconfig.colmap[top_folder]]: print(f"Movie {video.title} is missing collection {apiconfig.colmap[top_folder]}") video.addCollection(apiconfig.colmap[top_folder])