A configuration for abcde (A Better CD Encoder) that works on macOS in 2025.
abcde is a command-line CD ripper that automates the entire process: reading audio from CDs, looking up metadata, encoding to multiple formats, embedding album art, and organizing your music library. This gist provides a working setup for macOS in 2025.
- Quality: This configuration uses cdda paranoia (good error correction), the Fraunhofer FDK AAC encoder for AAC and M4A files, Apple's excellent afconvert for AAC files, and FLAC for lossless compression
- Versatility: abcde speaks FLAC, which the Music app doesn't support
- Convenience: abcde can encode different formats at the same time, running it from the Terminal
Now that's the question.
Install the required dependencies via Homebrew:
brew install abcde cd-discid ffmpeg libcdio-paranoia atomicparsleyFor better AAC/M4A quality using the Fraunhofer FDK-AAC codec, install ffmpeg from the homebrew-ffmpeg tap:
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aacThen uncomment the FDK-AAC line in .abcde.conf.
- Download the
.abcde.conffile from this gist - Place it in your home directory as
~/.abcde.conf - Important: Edit the
CDROMdevice path to match your system- Run
diskutil listto find your CD drive - Update the
CDROMline with your raw disk device (e.g.,/dev/rdisk4)
- Run
- Insert an audio CD
- Open Terminal and run:
abcde
- Follow the prompts to verify CD information
- abcde will automatically rip, encode, tag, and organize your music
Ripped files will be saved to ~/Music/CDRips organized by artist and album.
The default configuration encodes to two formats simultaneously:
- FLAC - Lossless archival format
- M4A/AAC - Compressed format for everyday listening
You can modify the OUTPUTTYPE variable in .abcde.conf to change this.
The configuration currently uses the CDDB protocol for metadata lookup. MusicBrainz would be preferable but currently has issues with the Homebrew formula (Perl version conflicts or formula problems). If you want to experiment, replace cddb with musicbrainz in the ACTIONS line.
The current abcde Homebrew formula has several problems:
- Incorrect dependencies
- MusicBrainz tools don't work properly
- Uses outdated code
Upstream sources:
- Official abcde repo (not actively maintained): https://git.einval.com/cgi-bin/gitweb.cgi?p=abcde.git;a=summary
- Recent fork with updates: https://github.com/poddmo/abcde
The Homebrew formula for cd-discid (needed for cddb lookup) is deprecated and needs updating. A potential replacement: https://sourceforge.net/p/discid/code/HEAD/tree/
Configuration based on various sources and adapted for macOS. Filename sanitization function from https://notes.enovision.net/linux/rip-cds-with-abcde