The Classical CD Tagger (CCDT)

1.0 What is CCDT?

If you’ve ripped an Audio CD using the Classical CD Ripper (CCDR), then you already possess FLAC files on your hard disk that have been tagged with metadata describing the Composer, the name of the composition involved and its genre: those ‘core’ tags are part of CCDR’s fundamental functionality.

But CCDR won’t have been able to write meaningful metadata into the track name, performer(s) and Album Art tags: so, all your ripped music will be called things like “track01.flac” without a lot to distinguish it from the “track01.flac” that was ripped earlier for the other Symphony or Concerto on that CD of yours.

CCDT therefore steps into the picture in order to be able to complete the set of tag metadata that completely describes a piece of classical music.

I should say, too, that you can use CCDT independently of CCDR: you may have bought some FLAC downloads from a reputable site and despaired at the metadata tags that come pre-applied to the purchased music. If so, CCDT lets you correct that sort of thing, no matter that CCDR was not involved in the original creation of the files at all.

2.0 What does CCDT do?

CCDT runs entirely as a command-line tool, from a terminal session window. It will prompt you to supply Track titles, Performers and Album Art metadata. You can supply just one of those three things; any choice of two of them; or all three in one sitting, as you prefer.

Whatever you type in, it writes as Vorbis Comments -the correct form of tag for a FLAC file (we don’t believe in ripping classical music to MP3 files, which need ID3 tags to store their metadata).

It won’t fetch any data from the Internet (since it’s always wrong as far as classical music is concerned). What you type in, typos and all, is what gets stored in the relevant tags.

3.0 Obtaining CCDT

On most Linux distros, you simply need to download CCDT (which is simply a Bash script) by clicking this link. Save it to anywhere you prefer, but I’m going to assume you save it in your Downloads folder for what follows. Once it’s been saved to disk, please feel free to open the file in a text editor and check that it’s not going to do anything that it’s not supposed to do!

Once downloaded and saved somewhere, run the following commands:

sudo mv $HOME/Downloads/ /usr/bin 
sudo chmod +x /usr/bin/ 
sudo ln -s /usr/bin/ /usr/bin/ccdt

That’s the equivalent of an installation script. It copies the download from wherever you stored it on disk to the /usr/bin directory (as mentioned, the specific command shown assumes that you downloaded it to your personal Downloads folder); it then makes the script executable; and finally it creates a shortcut to the script called just ‘ccdt’ so that you don’t have to remember the “.sh” suffix every time you want to run it. Some distros might not have a /usr/bin directory; move the file to /bin instead in that case. The key thing is to try to get the script into a directory that is already listed within your PATH environment variable, so that the script can be executed from anywhere without having to spell out the complete path to it.

Once you’ve ‘installed’ CCDT in this way, you can run the Classical CD Tagger by simply typing the command:


However, you can only run CCDT in this way once you have navigated at the command prompt to a folder that contains FLAC files, otherwise, there’s nothing for it to do and it will quit immediately with a large warning message in bright red text!

The program will also check two other things: 1) are any FLAC files present in the directory actually writeable. If not, it will throw another bright-red warning and quit. By definition a piece of tagging software needs to write tags to audio files! and 2) if will check that a few pieces of prerequisite software are present and throw an error and quit if not. Part of the error message displayed will be a command you can issue on most platforms to install the missing software:

That’s the script working on Ubuntu: it knows that a ‘sudo apt install’ is the correct way to install software. On other distros, it will do its best to give you the correct installation information. A particular quirk arises on Fedora, however:

The ffmpeg package is not included in any of Fedora’s standard repositories for fear of patent infringement, so in order to be able to install it, you need to first enable the RPM Fusion software repository, which can be done by issuing these two commands:

sudo dnf install$(rpm -E %fedora).noarch.rpm
sudo dnf install$(rpm -E %fedora).noarch.rpm

Once those repositories are enabled, the software installation command shown in yellow/orange in the above screenshot will work without problem. Fortunately, Fedora is the only distro I am familiar with on a daily basis that this applies to.

Once you’re in a directory containing writeable FLACs and all software prerequisites have been determined to be present, launching CCDT (by typing ccdt, remember!), will result in this sort of numbered main menu display:

You use CCDT by taking each of the numbered options in turn. You don’t have to take all options if they’re not necessary, but you should try to take any options you do want to use in ascending numeric order. For example, you may already have COMPOSER, ALBUM and GENRE tags set by your ripping software, so you now only need to set Performer, Recording Year and Album Art: in that case, take options 3, 5 and 6 in that order.

Each option you take will prompt you to supply some information; once you supply it, it will immediately apply it to all FLAC files found in the folder you launched the program from. Once it has completed writing to the files, it will return you automatically to the main menu, from where you can take further options (or re-take the same option(s) you’ve already taken if you’ve made any mistakes first time round).

It is important that when you have tagged up all tracks correctly, you should quit CCDT cleanly, by taking the ‘q’ option from the main menu. The ‘q’ option applies a final clean and tag consistency check to your FLAC files, so without a clean exit, these final processes don’t occur.

CCDT will remember answers from one run to the next. If you run it once, say the performers were “X and Y”, then ‘X and Y’ will be remembered as the performers and suggested as the performers the next time you run CCDT. If the performers of your second album are different from the first, then you just ignore the suggestion and type in the correct performer names afresh. If the suggestion is correct, however, then you just press [Enter] to accept the suggestion. Remembering previous runs in this way, and being able to re-use them in subsequent runs, makes the application of similar data across multiple ‘virtual albums’ very easy. When you have 1 CD containing 3 symphonies all performed by the same conductor and orchestra, for example, the first symphony will require quite a bit of fresh typing -but the 2nd and 3rd will need hardly any typing at all.

4.0 Worked Examples

For a complete set of worked examples using CCDT to tag a variety of CDs in different configurations, see this page and read each of the ‘For Linux Users’ articles in turn.


CCDT was devised and written by Howard Rogers ([email protected]).


CCDT is copyright © Howard Rogers 2019, but is made available freely under the GPL v2.0 only. That license may be downloaded here.

Bugs Tracking, Feature Requests, Comments

There is no formal mechanism for reporting and tracking bugs, feature requests or general comments. But you are very welcome to email your comments to [email protected]