#!/usr/bin/python import os from datetime import datetime from pathlib import Path from plexapi.myplex import MyPlexAccount from plexapi.server import PlexServer from plexapi.media import Media from pprint import pprint import sys import time 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() fixing = False if len(sys.argv) > 1: if sys.argv[1] == "--fix": fixing = True plex = PlexServer(apiconfig.url, apiconfig.apikey) wrong_count = 0 print("Looking for videos that have added dates not matching ctime...") videos = plex.library.section(apiconfig.libraryname).all() nowstamp = time.time() cutoff = 86400 * 10 for video in videos: file = None for part in video.iterParts(): if file == None: file = part.file if not os.path.isfile(file): print(f"*** Missing: {video.title} ({file})") continue path = Path(file) stat = path.stat() filestamp = stat.st_mtime #if (nowstamp - addedstamp) < cutoff: # print(f"{video.title}: {addedstamp}") filedate = datetime.fromtimestamp(int(filestamp)) addeddate = video.addedAt if filedate.date() != addeddate.date(): wrong_count += 1 print(f"{video.title}: ctime={filedate.date()} added={addeddate.date()}") if fixing: video.editAddedAt(filedate, locked=True) print(f"Total Files With Wrong Added: {wrong_count}") if not fixing and (wrong_count > 0): print("Fix these files by using the '--fix' parameter") print()