tidy up messy filenames — keep what matters
Mode
Metadata (TMDb)
Confirms the real title & year from TMDb for the checked items, fixing mislabeled names. Runs only when you click; key is saved in this browser.
Folders
Point SCRUB at the folder that contains your movie folders. Each subfolder is renamed and its video/subtitles renamed to match.
Filters
Remove last N chars of name
e.g. YIFY, ettv, RARBG
Find (regex)
Replace with
Case-insensitive + global applied automatically.
Rename rules
Quick add creates a normal rename rule row for common cleanup moves. It does not rename anything immediately; it just adds the rule so you can preview, edit, disable, or delete it.
. to space turns Bank.Statement.June.pdf into Bank Statement June.pdf._ to space turns Bank_Statement into Bank Statement.- to space turns Bank-Statement into Bank Statement.strip (N) removes duplicate markers like Statement (2).pdf.Rules run in order on the filename, before anything else. Find: * = any chars, ? = one char. Replace: {1} {2} = captured pieces. Per rule: toggle WILD↔REGEX, and NAME (extension protected) ↔ ALL.
Presets
Clean up messy filenames, sort media into a Plex-style library, and rename documents and photos by template — all in your browser, files renamed in place, nothing uploaded.
Title (Year).Show S01E02 (add the episode title with Keep episode title).Movies/Title (Year) and TV/Show, and optionally watch a folder to auto-file.(2), (3) instead of flagging a clash.tmdb ✓ badge. Runs only when you click.{type} {month} {mon} {MM} {monthnum} {year} {date} {orig} — date pulled from filename, EXIF, or file-modified.{right #} walks across the original name by however many characters you type. Example: {right 2}.{right 2}. turns 04054040 into 04.05.4040.{left #} moves the insertion point to that many characters from the left of the built name. Example: {orig}{left 5} ! turns helloworld into hello !world.{n} {nn} {nnn} — running sequence, zero-padded.{1} {2} … — capture groups from your Capture from name (regex) field ({0} is the whole match).* = any chars, ? = one char. Click the WILD badge to flip a rule to REGEX.{1} {2} in the replacement. Example: rule Henri* → Henrietta, or 20-(??) → 20{1} to fix "20-26" → "2026".NAME↔ALL scope toggle. NAME (default) leaves the file's extension untouched — a rule like .→(space) changes BofA Checking June.2024.pdf to BofA Checking June 2024.pdf without breaking .pdf.(2).{month} and {year} resolve from these even when the source isn't a numeric date.→ folder/newname.pdf. Move actions are undo-able.SCRUB is designed to work on your device. File names are previewed locally, and files are renamed only after you approve the selected rows.