iPhoneVideosScanning

How DeDup 1.0.1 finds duplicate videos on iPhone

Rahul Pahuja·October 17, 2026·3 min read

The Video Scanner in DeDup 1.0.1 on iPhone looks for videos that are the same clip. It matches exact copies by their file details, and re-encoded copies by comparing three frames from each video. You open it from the "Videos" tile on the Dashboard.

How videos are matched

The scan first indexes your library (the "Indexing library" phase), skipping any albums you excluded in Settings. Then, in "Comparing videos", it works in two ways.

Exact copies. Two videos with the same file size, the same resolution and the same length, rounded to a tenth of a second, are put in a group. The code does this without decoding any frames, so it also works for videos stored only in iCloud. A video with a file size of zero gets no such key.

Re-encoded or similar copies. DeDup first narrows the list. Only videos that have another video within 1 second of their length are worth decoding, so only those get frames. For each, it takes a still frame at 10%, 50% and 90% of the duration, at up to 256 pixels, and makes a 64-bit difference hash of each, the same hash the Image Scanner uses. Exact copies with a similar-length neighbour are decoded too, so a re-encoded copy still matches when the original also has an exact twin.

Two videos match when their lengths are within 1 second and the biggest difference between their three frame hashes is at most the similarity threshold. The default is 10 bits. It's the same "Similarity Sensitivity" stepper in Settings, 0 to 20. A video that isn't stored on the phone can't be decoded this way, because the code doesn't allow network access for it. It can still join a group through the exact-copy rule.

The code compares frames and length only. I found no audio comparison.

What you see

  • The header reads "Ready to scan", then "N duplicate groups found" or "Gallery is clean".
  • Groups are titled "N similar videos".
  • Each thumbnail shows the video's duration and file size.
  • One video per group has the KEEP badge. The order is favorite first, then higher resolution, then larger file. The others are preselected.
  • You can sort and filter, and press and hold a video to preview it. For previews, the code lets iOS stream the video from iCloud when it needs to.

The results are saved so the next launch can restore them. Frame hashes are reused while a video's modification date is unchanged.

What you can do with results

Select videos and tap "Move to Trash". That hides them from DeDup but leaves them in Photos until you delete them from the Trash, where iOS asks you to confirm. Guests can scan and review, but moving to Trash needs a signed-in account.

Large Videos is a separate list on the Optimize tab. It filters by size instead of matching copies, and its default cutoff is 100 MB.

Scope of this post

Checked against: DeDup 1.0.1 source code (iPhone).

Not tested on a device: how long a video scan takes, how accurate frame matching is on real clips, how iCloud-only videos are handled in practice, and how the preview behaves. I read the code and on-screen text only.