--- -xprime4u.pro-.numbari.s01p01.720p.hevc.web-dl 〈90% EASY〉

ffprobe -v quiet -show_streams -select_streams v:0 "file.mkv" | grep "codec_name\|width\|height" Example output:

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

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) ffprobe -v quiet -show_streams -select_streams v:0 "file

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 """ # season + part (

This guide covers , renaming , metadata extraction , and automation for such naming conventions. 1. Understand the Pattern The filename contains several parts:

match = re.match(pattern, filename, re.VERBOSE | re.IGNORECASE)