45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
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])
|