Music Library Doctor
DJ-aware cleanup

The duplicate finder built for DJs

Most dedupe tools treat your DJ library like a folder of loose MP3s. MLD knows which files your playlists reference and re-points them before anything gets touched.

The problem

Generic duplicate finders (dupeGuru, Gemini, Duplicate Cleaner) don't know anything about Rekordbox, Serato, or VirtualDJ. They'll happily recommend deleting `Track.mp3` when it's the exact file your 2024 set references — and then your playlists turn into a wall of red icons. They also don't understand that `Track.mp3` at 320 kbps and `track(1).mp3` at 192 kbps are the *same song you've already listened to a thousand times* and you want to keep the 320.

How Music Library Doctor does it

  1. 1 Scan with three detection modes: exact hash (byte-identical), audio fingerprint (content-based, ignores tags/bitrate), metadata (artist + title + duration).
  2. 2 Every group shows each copy's bitrate, duration, and real file size side by side, and the per-group Quality Check scores the actual audio (0–10) — so the keeper is picked on evidence, with playlists re-pointed before anything moves.
  3. 3 MLD previews the decision: *keep 'House/Funky.mp3' (320 kbps, in 4 Rekordbox playlists), move 'Misc/funky(1).mp3' (192 kbps, unreferenced) to Trash.*
  4. 4 Confirm or override per group; use the built-in player to A/B copies.
  5. 5 MLD rewrites every Rekordbox, Serato, and VirtualDJ playlist to the winner, THEN moves losers to Trash/Recycle Bin. Reversible. A one-screen summary then shows what was removed, the space reclaimed, and which playlists were re-pointed.

Supported today

Rekordbox · Serato DJ · VirtualDJ (incl. Favorite Folders) on Windows 10+ and macOS (Apple Silicon + Intel).

Why native integration matters

The difference isn't the hashing — every dedupe tool hashes files. The difference is DJ-library awareness. MLD reads Rekordbox master.db (including encrypted 6+), Serato crates, and VirtualDJ database.xml, and knows which file is referenced by which playlist. That's what lets it safely pick a winner, re-point playlists first, and move losers to Trash without breaking a single set.

Frequently asked questions

How is this different from dupeGuru or Duplicate Cleaner?

Those tools treat your library as loose files. MLD is DJ-aware: it reads Rekordbox, Serato, and VirtualDJ databases, knows which files are referenced, and re-points playlists BEFORE moving files. Generic tools can't do that.

What about iTunes / Apple Music libraries?

MLD is built specifically for DJ libraries — Rekordbox, Serato, VirtualDJ. It will scan any music folder, but its playlist-safe promise only applies to those three apps.

Does it work offline?

Yes. Everything runs locally — no cloud, no uploads. The local database is encrypted with SQLCipher.

Can I override the recommended keeper?

Yes — every group is reviewable. Move the KEEP marker with one click, preview the actual audio, or run the group's Quality Check (0–10 per copy) and let the scores settle it.

Is it safe to run on a large library?

Scanning is read-only. Writes happen only after you confirm each group, files move to Trash/Recycle Bin (never hard-deleted), and playlists are re-pointed to the kept copy first. At least one copy in every group is always kept, and any borderline match lands in a separate review list MLD never removes on its own.

How do I know which copies are really the same recording?

Every copy carries its own match-score badge — an exact match or just a close one — next to its bitrate and quality, so you spot the true twin at a glance instead of trusting one verdict for the whole group.

Get your library in shape in minutes

Free tier covers scanning and detection. Pro is a one-time lifetime license — paid once, no subscription. Current founding pricing is on the homepage.

Related guides