--- -xprime4u.pro-.numbari.s01p01.720p.hevc.web-dl -
python rename.py /path/to/files --dry python rename.py /path/to/files | Variation | Example | Fix | |-----------|---------|-----| | Missing group | Numbari.S01P01.720p.HEVC.WeB-DL.mkv | Make group optional | | Different extension | .mp4 , .avi | Allow in regex | | Plex wants E01 not P01 | S01P01 → S01E01 | Convert part to episode | | Two‑part episode | S01P01-P02 | Detect range or split | 7. Automation (Watch folder) Use inotify (Linux) or Watchdog (Python) to auto‑process new files.
codec_name=hevc width=1280 height=720 import os, re, sys from pathlib import Path def parse_numbari(filename): pattern = r"-?(?P<group>[A-Za-z0-9.]+)-?.(?P<show>[A-Za-z0-9.]+).S(?P<season>\d+)P(?P<part>\d+).(?P<res>\d+p).(?P<codec>[A-Za-z0-9]+).(?P<source>[A-Za-z0-9-]+).(?P<ext>[a-z0-9]+)$" m = re.match(pattern, filename, re.IGNORECASE) return m.groupdict() if m else None --- -Xprime4u.Pro-.Numbari.S01P01.720p.HEVC.WeB-DL
episode_num = int(part) new_name = f"show - SseasonEepisode_num:02d.ext" You can verify codec, resolution, and source: python rename
from watchdog.observers import Observer from watchdog.events import FileSystemEventHandler class NewFileHandler(FileSystemEventHandler): def on_created(self, event): if event.src_path.endswith(".mkv"): rename_file(Path(event.src_path), dry_run=False) [a-z0-9]+)$" m = re.match(pattern
ffprobe -v quiet -show_streams -select_streams v:0 "file.mkv" | grep "codec_name\|width\|height" Example output: