How to rename video files in bulk on a Mac

Finder's hidden batch rename, a few safe terminal one-liners, and the difference between renaming by pattern and renaming by content.

6 min read

Four hundred files called C0001.MP4 through C0400.MP4, and you want them to say something. There are three ways to do this on a Mac, and they solve genuinely different problems. Picking the wrong one is why people end up doing it by hand at midnight.

Method 1: Finder’s built-in batch rename

Most people do not know this exists. Select several files in Finder, right-click, and choose Rename Items. Three modes appear:

Replace Text. Find and replace within existing names. C00 becomes A7SIII_C00, done, 400 files.

Add Text. Prefix or suffix. Good for stamping a camera or a project onto a batch.

Format. Builds names from scratch: a base name plus a counter, an index or the date, with a chosen starting number.

Harbour-Sunrise-1.mp4
Harbour-Sunrise-2.mp4
Harbour-Sunrise-3.mp4

What it is good at: fast, no installation, no risk, and you can undo it immediately with Cmd+Z as long as you have not done anything else.

What it cannot do: pad numbers to a fixed width in the way you usually want, use anything about the file’s content, or apply different names to different files in one pass. It renames a group with one rule.

Practical tip that saves grief: sort the folder the way you want the numbering to run before you select. Format mode numbers in the order shown, so a sort by date creates chronological numbering, and a sort by name does not.

Method 2: the command line, carefully

For patterns Finder cannot express, the shell is right there. Two rules first: work on a copy until you trust the command, and dry run before you commit.

A dry run that prints what would happen and changes nothing:

for f in *.MP4; do echo mv "$f" "A7SIII_$f"; done

Remove the echo to run it for real. That pattern, print first then run, is the difference between a batch rename and an incident.

Zero-padding a counter, which Finder does not do properly:

i=1
for f in $(ls -1 *.MP4 | sort); do
  printf -v n "%03d" $i
  echo mv "$f" "Harbour_${n}.mp4"
  i=$((i+1))
done

Renaming by recording date, using exiftool if you have it installed:

exiftool -d "%Y-%m-%d_%H%M%S" "-filename<CreateDate%-c.%e" *.MP4

That one is genuinely useful for merging footage from two cameras into one chronological sequence, since it reads the file’s own creation metadata rather than the file system date, which changes when files are copied.

What the command line is good at: precision, repeatability, thousands of files, and patterns based on dates, extensions and existing names.

What it cannot do: know what is in the video. No shell command can tell that clip 87 is the rooftop interview.

Method 3: renaming by content

This is the different category, and it is worth being explicit about why.

Methods 1 and 2 are pattern renaming. Their input is the old name, the dates and the position in a list. If that information does not contain what you want in the new name, no amount of cleverness will produce it.

Content renaming analyzes the picture and the audio first, then writes a description into the name:

C0087.MP4  →  A7SIII_C0087_Rooftop-Interview-Marcus_16x9_4K_25FPS.mp4
IMG_4821.HEIC  →  2026-08-14_Harbour-Sunrise-Boats.jpg
ZOOM0007.WAV  →  Market-Crowd-Interior-Busy.wav

That is a different kind of operation, and until recently it required a person to watch every clip, which is exactly why almost every archive is still full of camera names. What changed is that a model can now describe a clip unattended. The wider version of that argument is in AI video asset management.

The naming rules that matter

Whichever method you use, the same rules apply, and they are not aesthetic preferences. Each one exists because something breaks without it.

No spaces. Use hyphens. Spaces need quoting in every shell, break some render farm paths and turn into %20 on the web.

No slashes, colons, asterisks, question marks or quotes. Colons in particular have historical meaning on macOS and cause strange failures rather than clean errors.

No accented characters or umlauts. They survive on macOS and then arrive mangled on a Windows machine, a Linux server or an FTP handover.

Zero-pad your numbers. 001 sorts correctly. 1 puts 10 before 2, in every file browser, forever.

Date first, in ISO order. 2026-08-14 sorts chronologically as text. 14.08.2026 does not.

Hyphens between words, underscores between fields. A7SIII_C0087_Rooftop-Interview_4K.mp4 is readable at a glance and machine-splittable.

Keep the original camera name. Prefix or suffix, but keep it. It is your route back to the card, to the camera’s own logs and to a colleague’s copy of the same shoot.

Stay under about 100 characters. Long names get truncated in every UI you care about, and the important part is usually in the middle.

Renaming without breaking your edit

The single most common fear, and it is a legitimate one.

Renaming a file that an open project references breaks the link. Premiere shows media offline, Resolve marks clips as missing.

Three ways to stay safe:

Rename at ingest, before the first import. Card copied, files renamed, then imported. Nothing to break. This is the answer, and everything else is damage control.

If you must rename existing project media, back up the project file first, do the rename, then relink at the folder level. Both Premiere and Resolve match on more than the name, so a folder-level relink usually resolves everything in one dialog.

Never rename inside a project’s own media folder while the project is open. Close it first.

Keeping an undo path

Any bulk rename of hundreds of files should leave a record of what it did. Finder’s undo is one step and vanishes when you click anything else. A shell loop leaves nothing at all unless you make it.

The minimum: before running a batch, save the current state.

ls -1 > _original-names.txt

Better: write a mapping of old to new as you go, so a reversal is mechanical rather than archaeological.

for f in *.MP4; do echo "$f -> A7SIII_$f" >> _rename-log.txt; done

Any tool that renames at scale should do this for you and should never delete or move an original without a trace. If it does not tell you what it changed, do not point it at four hundred irreplaceable files.


Cliptag does the content renaming pass on macOS: it analyzes each video, photo and recording, writes a descriptive filename with the technical suffixes you choose, applies Finder tags and files everything by media type and date. Originals are never deleted, every rename and move is written to a log file, and actions can be undone within the session. Free plan, no account, on-device mode free and unlimited on Apple Silicon.

Questions
Does macOS have a built-in batch rename?

Yes, and it is well hidden. Select several files in Finder, right-click and choose Rename Items. You get three modes: replace text, add text before or after, and format, which builds a name from a base plus an index, counter or date.

Will renaming files break my Premiere or Resolve project?

It breaks the link if the project already references those files, and you will have to relink. Both applications relink a whole folder in one dialog and match on more than the filename, so it is recoverable. The clean answer is to rename before the first import.

What characters should I avoid in video filenames?

Spaces, slashes, colons, question marks, asterisks, quotes and accented characters. They break command line tools, some network shares and some render pipelines. Use hyphens between words and underscores between fields, and keep names under about 100 characters.

How do I rename files based on what is in the video?

Pattern renaming cannot do this, because the pattern only knows the old name and the file's dates. You need something that analyzes the picture and audio first and produces a description, then writes that into the name. That is a different category of tool than a batch renamer.

Try it on your own footage

Drop in a folder. Get back names, tags and transcripts.

Cliptag reads your video, photos and audio, names every file by what is actually in it and files it where you will find it again. Free plan, no account, and the on-device mode stays free and unlimited.

Download free for Mac Or try it in the browser
macOS 11+ · No account · No card
Keep reading
How to organize Sony footage without losing a single C0001.MP4 The Sony card structure explained, why two bodies overwrite each other, and a naming system that still makes sense after the project is done. How to find clips without opening Premiere Why NLE metadata disappears the moment a project closes, and how to build a search layer that works on any drive, from any application. How to tag B-roll so you can actually find it later Subject, function and quality: the three axes of a tag system that still works after twenty projects, plus a starter vocabulary.