Here’s a for creating a script or tool to handle a file named like:
def rename_file(old_path, dry_run=True): parsed = parse_numbari(old_path.name) if not parsed: print(f"Skipping: old_path.name") return new_name = f"parsed['show'] - Sparsed['season']Eint(parsed['part']):02d.parsed['ext']" new_path = old_path.parent / new_name if dry_run: print(f"[DRY RUN] old_path.name -> new_name") else: os.rename(old_path, new_path) print(f"Renamed: new_name")
pattern = r""" ^-?(?P<group>[A-Za-z0-9.]+)-?. # group (?P<show>[A-Za-z0-9.]+). # show name S(?P<season>\d+)P(?P<part>\d+). # season + part (?P<res>\d+p). # resolution (?P<codec>[A-Za-z0-9]+). # codec (?P<source>[A-Za-z0-9-]+) # source .(?P<ext>[a-z0-9]+)$ # extension """ --- -Xprime4u.Pro-.Numbari.S01P01.720p.HEVC.WeB-DL
if == " main ": folder = sys.argv[1] if len(sys.argv) > 1 else "." dry = "--dry" not in sys.argv for f in Path(folder).glob("*.mkv"): rename_file(f, dry_run=dry)
if match: print(match.groupdict())
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
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) Here’s a for creating a script or tool
| Part | Example | Meaning | |------|---------|---------| | Group tag | -Xprime4u.Pro- | Release group | | Series | Numbari | Show name | | Season & Part | S01P01 | Season 1, Part 1 | | Resolution | 720p | Vertical resolution | | Codec | HEVC | Video codec (H.265) | | Source | WeB-DL | Downloaded from web | Note: P01 might mean "Part 01" (e.g., split episode or dual release). Handle accordingly. import re filename = "-Xprime4u.Pro-.Numbari.S01P01.720p.HEVC.WeB-DL.mkv"