def organize_directory(directory, dry_run=True): """Scan directory, rename files, and verify.""" directory = Path(directory) for filepath in directory.iterdir(): if filepath.suffix.lower() not in ['.mkv', '.mp4', '.avi']: continue
#!/usr/bin/env python3 """ Media File Organizer for files named like: "The Dark Knight Trilogy 1080p BDRip AAC x264-to..." Parses scene naming, renames to clean format, checks bitrate, and verifies audio. """ import re import os import sys import subprocess from pathlib import Path Example input: "The Dark Knight Trilogy 1080p BDRip AAC x264-to..." PATTERN = re.compile( r'^(?P<title>.+?)\s+' # Title (lazy match) r'(?P<resolution>\d3,4p)\s+' # 720p, 1080p, 2160p r'(?P<source>BDRip|WEB-DL|BluRay)\s+' # Source r'(?P<audio>AAC|DTS|AC3)\s+' # Audio codec r'(?P<video>x264|x265|AV1)\s*' # Video codec r' -– ?' # Release group (optional) r'(?P<ext>.mkv|.mp4|.avi)$' # Extension ) THE DARK KNIGHT TRILOGY 1080p BDRip AAC x264-to...
The Dark Knight Trilogy 1080p BDRip AAC x264-toxx.mkv The Dark Knight 2008 1080p BDRip DTS x264-toxx.mkv dry_run=True): """Scan directory
The Dark Knight Trilogy (1080p).mkv The Dark Knight 2008 (1080p).mkv And it will alert you if any file is incomplete or corrupted. renames to clean format
if not dry_run: # Rename file filepath.rename(new_path) # Verify integrity if verify_integrity(new_path): print(" ✓ Integrity check passed") else: print(" ✗ WARNING: File may be corrupted")