notsu

Dup - Find duplicate photos & videos other apps miss

by
Most duplicate finders only catch exact copies. But real duplicates aren't exact — same photo as HEIC and JPG, same video at 4K and 1080p, same file renamed. Dup compares what your files actually look like. It found 47 duplicate videos that 3 other apps missed on the same folder. Drop a folder. See your duplicates. Delete with one click. 100% private — runs on your Mac, nothing uploaded. Free to use.

Add a comment

Replies

Best
notsu
Maker
📌
Hey Product Hunt! I'm the solo developer behind Dup. Here's the story: I had a 200 GB photo and video library. I ran it through three different duplicate finders. The best one found 3 duplicates. I knew there were way more. I could SEE them — same vacation video at 4K and 1080p. Same photo as HEIC from my iPhone and JPG from when I emailed it. Same file saved twice with different names. But every tool on the market compares raw file data. If two files aren't identical byte-for-byte, they say "not a duplicate." That's technically correct. But practically useless. So I built something different. Dup actually looks at what your files look like — like you would. It creates a visual fingerprint of every photo and video, then groups files that look the same. The result? On that same 200 GB library: Other tools: 3 duplicates (1.2 GB) Dup: 47 duplicates (38 GB) That's 38 GB I was wasting and had no idea. Then I ran my photo library (85,000 images). Other tools found 120 duplicates. Dup found 2,847. Mostly HEIC/JPG pairs from my iPhone, plus photos imported from multiple backups. Total recovered: 50 GB. Three things I'd love feedback on: 1. Did Dup find duplicates that your current tools missed? 2. Is the similarity threshold right, or did you see false positives? 3. What file types or scenarios should I add next? Happy to answer any questions about how it works under the hood! PS. Please download the app directly from now on, rather than through the App Store. The newest verion take longer for approval. 🫠
Christian David Bazan

Nice work! Curious about Smart Select. How are you determining which file to keep in each duplicate group? Perceptual hashing, metadata comparison, or something else?

I'm building something similar for iOS photos and the "pick the best one" logic is the hardest part to get right. Especially when two files look identical but differ in resolution or compression.

notsu
Maker

@krisba95 Great question! Smart Select uses a combination of signals to rank files within each duplicate group — things like file size, resolution, and recency — weighted so you keep the "best" version without having to decide manually.

The perceptual hashing is used for detection (finding what's similar), but the "which one to keep"

ranking is a separate layer on top of that. The tricky part you're describing — identical-looking

files at different resolutions or compression — is exactly where naive approaches break down. We

treat higher resolution + larger file size as a strong signal for "original", but there are edge

cases (re-encoded at higher bitrate, etc.) where that heuristic fails and we fall back to recency.

For iOS photos specifically, you also have the HEIC vs JPEG variant problem which adds another

wrinkle. Would love to compare notes — what signals are you finding most reliable?

Christian David Bazan
@notsu For similarity detection I'm using Apple's VNFeaturePrintObservation, which gives you a perceptual distance score between images. It's solid for grouping but tells you nothing about which one is "better." For the ranking layer, sharpness (Laplacian variance) has been the most reliable signal by far. Resolution and file size help but like you said, HEIC vs JPEG makes that noisy. Lighting/exposure is useful as a tiebreaker but rarely flips the result on its own. The edge case I keep hitting is burst-like sequences where sharpness and resolution are nearly identical across 5+ shots. Recency ends up being the fallback there too, which feels like a coin flip honestly.