A content-aware duplicate video finder with a local web UI, for Windows. One EXE, nothing to install.
Powered by FFmpeg, which does the frame decoding. DupFinder is the detection, comparison and review layer around it.
- Download
DupFinder.exe, a single file with nothing to install. - Run it with one or more folders:
DupFinder.exe "D:\Movies" "E:\Backup\Clips" - Your browser opens automatically. Review the duplicate groups and decide what to keep.
On first run DupFinder fetches FFmpeg automatically: no setup, no PATH fiddling, no dependencies.
- 🧠 Content-based, not name-based. It samples a handful of frames per video and compares them with a perceptual hash (pHash). That catches duplicates even across different containers, resolutions or re-encodes — not just byte-identical copies (though those are detected too, without decoding).
- 🪟 Local web UI. Side-by-side comparison of each group: thumbnails, size, bitrate, resolution, codec and duration. The best value per column is highlighted, and the largest file is pre-selected as "keep".
- ⌨️ Fast keyboard review. Walk through groups and decide in seconds (see shortcuts below).
- 🛡️ Safe with your files. "Delete" moves a file to the Windows recycle bin (recoverable), never a hard delete. Decisions are remembered between runs and can be undone.
- 💾 Cached. Results are stored, so a second scan of the same files is near-instant — only new or changed files are re-examined.
- 🔒 Stays on your machine. The UI is served on
localhostonly; nothing is uploaded anywhere.
DupFinder.exe <folder> [more folders ...]
The web UI runs at http://localhost:8765 (the next free port is used if that one is busy) and opens by itself.
| Key | Action |
|---|---|
1…9 |
Toggle file N between Keep and Delete |
Shift+1…9 |
Mark file N as Ignore |
Enter |
Confirm the focused group (carries out the actions) |
S |
Skip the group (keep everything) |
U |
Undo the last decision |
↑ / ↓ |
Move between groups |
? |
Show / hide the help panel |
Actions: Keep leaves the file. Delete moves it to the recycle bin. Ignore excludes the file from future scans but leaves it where it is.
DupFinder runs fine with no configuration. For large libraries you can tweak:
| Variable | Default | Effect |
|---|---|---|
DUPFINDER_FAST_SEEK |
on | Jump straight to the nearest keyframe when sampling frames (fastest). Set to 0 for slower, frame-accurate seeking. |
DUPFINDER_HWACCEL |
off | Decode on the GPU (NVDEC). Often slower than CPU for this short-sample workload; off by default. |
DUPFINDER_FFMPEG_CONCURRENCY |
CPU cores | Number of parallel FFmpeg processes. Raise on fast SSD/NVMe, lower for a single mechanical disk. |
- Windows 10/11 x64
- FFmpeg: downloaded automatically on first run into a
bin\folder next to the EXE (or drop your ownffmpeg.exe/ffprobe.exethere) - An internet connection on first run (for that one-time FFmpeg download)
Windows or your antivirus may warn you the first time you run DupFinder.exe. The honest reason: the EXE is not code-signed (signing certificates cost hundreds of euros per year, and this is a free hobby project). Unsigned Go binaries are common false-positive targets.
You don't have to trust it blindly:
- Scan it: upload the EXE to VirusTotal before running.
- Read it: the complete source code is in this repository.
- Build it yourself: see below.
If SmartScreen blocks the start: click "More info" → "Run anyway".
go build -o DupFinder.exe .
Requires Go 1.22+. FFmpeg is not needed to build — it is downloaded at runtime, never embedded.
DupFinder is source-available under the PolyForm Noncommercial License 1.0.0.
Free to use, study, modify and share for any noncommercial purpose: personal use, hobby, education, research. Commercial use, resale or bundling into paid products is not permitted without a separate license from the author.
DupFinder does not bundle FFmpeg. On first run it downloads an official static build from the BtbN FFmpeg-Builds project onto your machine, or you provide your own copy. FFmpeg is a separate work by the FFmpeg project under its own license; DupFinder invokes it as an external program.
Found a bug or have a feature wish? Please open an issue on the GitHub repository — feedback is genuinely welcome. Forks and pull requests for noncommercial improvements are too.
DupFinder is free and made in my spare time. If it saved you some disk space and you'd like to say thanks, you can buy me a coffee on Ko-fi. Completely optional — and thank you!
DupFinder is free hobby software, provided "as is", without any warranty or condition of any kind. It was built and tested with care — deleted files go to the recycle bin, not a permanent delete — but you use it at your own risk. As far as the applicable law allows, the author is not liable for any damages or data loss arising from the use of this software. See the No Liability clause of the license.