CheetahLab CheetahLab
DE EN

CheeTag — bringing order to a music collection

Software

My private CD collection, ripped over the years with iTunes, Windows Media Player & co. — and AC/DC in it spelled four different ways. CheeTag is the tool I am building to clean it up: sort, tag, verify, without the original losing a single byte.

CheeTag — Bildzeichen und Schriftzug

Some folders are better left unopened. On my drive, one of them is called Music. It holds my private CD collection — a big floor-standing shelf full of CDs and two towers of maxi singles — which found its way onto the hard drive as private copies over the years. Perfectly legal, by the way: in Germany you may copy your own CDs for personal use, as long as no copy protection is broken. Musically flawless — organisationally a mosh pit. 🤘

So I am currently building a tool to clean it up: CheeTag. Sort, tag, verify — SORT · TAG · VERIFY, hence the name.

Taking stock first

Before you tidy up, you look at what is actually there. And that is where the source of the chaos shows: over the years, the ripping was done with whatever was at hand — iTunes, Windows Media Player, Exact Audio Copy and a few others. Every program had its own idea of what folders and files should be called. And let's not even talk about the tags. 🙈

  • AC/DC shows up four times: as AC DC, AC, DC, AC-DC and ACDC. Angus Young would be proud of how many ways there are to spell his band.
  • A colourful mix of formats, from solid MP3 to oddities like WMA and APE.
  • A file path longer than Windows is actually supposed to allow.

Why not just use an existing tool?

Of course I looked. MusicBrainz Picard tags brilliantly, but has no idea how far along the clean-up I am. beets does exactly this workflow, but wants a command line and configuration files for it. And the big players with a built-in tag editor tend to be more cockpit than tool.

What I was missing: a guided rebuild with a proper interface, where you do 20 albums today, carry on in three weeks — and always see where you stand.

The idea: source → workbench → library

The most important rule first: the original is never touched. In the default mode, CheeTag only reads the old collection, and a new, cleanly sorted library grows next to it, piece by piece. If you don't have the disk space, you can also clean up directly in the original folder — then nothing is deleted, it is moved to a holding folder instead, and every change can be undone.

In between sits the workbench:

  1. Capture — every file is read: format, tags, cover and a checksum over the pure audio data.
  2. Identify — an acoustic fingerprint goes to AcoustID, and the matches are checked against MusicBrainz. The result is a suggestion with a match score.
  3. Review — album by album, before and after side by side. The machine suggests, the human decides.
  4. Apply — copy, tag, add the cover, name it properly.
  5. Verify — the new file is read once more. Only when the tags are right and the music is bit-for-bit identical does it turn green.

One extra I am particularly looking forward to: dissolving compilations. A track from some "20 Greatest …" collection then ends up where it belongs — with its own artist, on its own album. The compilation is not lost in the process; it becomes a playlist in its original order.

Where it stands

Taking stock is done. The entire collection has been captured, a second run takes just 12 seconds because CheeTag remembers what has not changed — and not a single byte on the drive was altered along the way. That was exactly the acceptance criterion.

Identification is now under way: fingerprints and the AcoustID lookup work; next up are the album suggestions from MusicBrainz and the actual workbench.

Under the hood: a core written in Rust, the interface built with Tauri and React, everything stored locally in an SQLite database. German and English, dark first — in the CheetahLab look, naturally. No account, no cloud, and the access keys for the music services live in the operating system's vault, not in some text file.

And then?

Once the collection is tidy, it should be fun to use as well: albums as a cover grid, playlists in seconds, lyrics to sing along to — and via Navidrome onto the phone, for running and for the car.

And now the good news: CheeTag won't stay in my workshop. If all goes well, the tool will be available for download later on — for anyone whose music folder is a mosh pit too. 😁

There is still some way to go until then. What happens next will be right here in the workshop log. 🖖