If your working drive is full and you're trying to figure out what's safe to delete, the first instinct is usually wrong. Most editors open one project, run a cleanup, see something that looks unused, and delete it. Two weeks later a different project on the same drive opens with red on the timeline. The footage was in use somewhere — just not in the project they were looking at.

This is the reason a per-project workflow doesn't scale to a real drive. The unit of cleanup that matters is the drive, not the .prproj. This post is the long version of how to do that audit correctly, and what to watch for at each step.

Why the drive is the right unit

Every Premiere project file holds references to media files. Those references are absolute or relative paths to files that live somewhere on disk. A project doesn't own the media — it just points at it. The same file on disk can be referenced by a hundred different projects.

That's why "is this file unused" is a trick question if you're only looking at one project. The honest version of the question is: is this file referenced by any timeline in any project that exists anywhere I haven't already accounted for?

Answer that across the whole drive and you have a real cleanup target. Answer it project-by-project and you'll keep deleting hero shots from your future self.

Step 1 — Inventory every project file on the drive

Start with a fresh search of the working volume for .prproj files. Don't trust your memory of where projects live. Premiere projects scatter:

Every one of these is a real reference set if the file resolves. Skip them at your own risk.

How to do it manually

On macOS, the fastest manual method is Spotlight or find from Terminal. Run something like:

find /Volumes/YourDrive -name "*.prproj" -not -path "*Trash*"

You want every project's absolute path written to a file. That's the input to the next step.

Step 2 — Walk the reference chain in each project

This is the step where most cleanup workflows fall apart, because .prproj is a gzipped XML file with internal indirection. References don't sit in a flat list — they walk through MasterClip, SubClip, and Media nodes, with extra hops for After Effects compositions, Generative Clips, and merged clips.

For each project you need to:

  1. Decompress the .prproj (it's gzip-wrapped XML).
  2. Walk MasterClip → Media references and resolve every ActualMediaFilePath to an absolute path on disk.
  3. Walk SubClip references to their parent MasterClip and back to media. SubClips don't add unique references, but they reveal which media is actively trimmed and worth keeping at full resolution.
  4. Recurse into linked After Effects projects. AE comps imported into Premiere bring their own footage references. Skip this step and you will delete AE source assets that are still in use.
  5. Resolve every path against the actual filesystem. A reference to a file that no longer exists is fine — it doesn't make the file undeletable, because it's already gone. But a reference to a relocated file should be matched by content hash or filename, not just path.

The output of this step is a master index: every file path on disk that is referenced by any timeline in any project on the drive.

Step 3 — Compute the unused-everywhere set

Now you have two things: a list of every media file actually on the drive, and a list of every file referenced by any project. The difference between those two lists is your candidate-for-cleanup set.

This is the only set that's safe by construction. Every file on it is unreferenced by any project on the drive. Every file off it is load-bearing somewhere.

A few things to watch for:

Step 4 — Confirm before you delete

Even with a clean unused-everywhere set, a real safe workflow doesn't go straight to delete. The right move is a holding pattern:

  1. Move candidates to a quarantine folder on the same drive (or a holding volume if there's room).
  2. Open every project in the index and let Premiere try to resolve. If anything reports offline media, the audit was wrong somewhere — pull the missing file out of quarantine and figure out which project still depends on it.
  3. Sit on the quarantine for a defined window — a week, a sprint, a project cycle. Whatever maps to your team's real review pace.
  4. Then delete. Or archive. The reclaim only counts when the bytes are actually gone from the working volume.

Why most editors don't do this manually

The manual version of the above is roughly an afternoon of work for a small drive and a non-starter for a real working volume with a hundred projects. The decompress-XML-walk-references-resolve-paths loop is exactly the kind of work computers exist for.

Clip Sweeper automates the four steps above. It scans every .prproj on a drive, walks the reference chain in each one, parses linked After Effects compositions, treats sidecar and spanned groups as logical units, and presents the unused-everywhere set with a Virtual Recycle Bin so the quarantine step is built in. Built specifically because the per-project tools structurally can't answer the question.

The takeaway

If you're trying to clean up a working drive, stop opening projects. Start indexing them. The right unit of analysis is the drive. The right output is a list of files that no project on the drive references. Anything narrower than that and you'll keep relinking media when a client calls.