from plexapi.myplex import MyPlexAccount from plexapi.server import PlexServer from plexapi.media import Media from pprint import pprint import sys PLEX_URL = 'http://localhost:32400' PLEX_TOKEN = 'h3ffbZ4pDxgNtGuUDFys' PATH_FOLDER = '/videos/' LIBRARY = 'Junior Movies' colmap = { "Action-Adventure": "Action/Adventure", "Animated": "Animated", "Christmas": "Christmas", "Comedy-Romantic": "Comedy/Romance", "Documentary": "Documentary", "Drama": "Drama", "Imports": "Imports", "Scary": "Scary", "Sci-Fi": "Sci-Fi" } colcontents = {} for col in colmap.values(): colcontents[col] = [] plex = PlexServer(PLEX_URL, PLEX_TOKEN) print("Building collection contents lists...") for col in colmap.values(): videos = plex.library.section(LIBRARY).search(collection=col) for video in videos: colcontents[col].append(video.title) print("Checking collections for each movie...") videos = plex.library.section(LIBRARY).all() for video in videos: file = None for part in video.iterParts(): if file == None: file = part.file [top_folder, junk] = file[len(PATH_FOLDER):].split("/", 1) if video.title not in colcontents[colmap[top_folder]]: print(f"Movie {video.title} is missing collection {colmap[top_folder]}") video.addCollection(colmap[top_folder])