Flacify Console
A keyboard-driven terminal UI for ripping CDs to FLAC with full MusicBrainz metadata and AccurateRip verification.
Features
- Rips audio CDs to FLAC via
cdparanoia+flac - MusicBrainz metadata lookup (artist, album, track titles, cover art)
- AccurateRip v1 CRC computation and database submission
- Automatic drive offset detection from embedded database (4,798 drives)
- Multi-disc album support
- CUE sheet generation
- Disc manifest (
disc-manifest.json) — comprehensive rip record
Installation
sudo apt install cdparanoia flac eject
User needs optical group membership: sudo usermod -aG optical $USER
Build from source:
git clone https://github.com/anomalyco/opencode.git
cd Flacify
dotnet publish Flacify.Console -c Release -r linux-x64 --self-contained true \
-p:PublishSingleFile=true
./bin/Release/net10.0/linux-x64/publish/Flacify
Quick start
# Insert a CD and run:
dotnet run --project Flacify.Console
# Dev mode (rips only track 1, skips metadata):
dotnet run --project Flacify.Console -- --test
Screenshots
Output layout
~/Music/Artist/Album/01. Song Title.flac
Album.cue
disc-manifest.json
Multi-disc albums create subdirectories: Album (Disc N).
Disc manifest
After each rip, Flacify writes a disc-manifest.json file alongside the FLACs. It captures all disc-level data — TOC checksums, CDDB ID, drive offsets, AccurateRip CRCs, and MusicBrainz identifiers — that can be submitted to the CRC database later.
See the Manifest page for the format specification.
AccurateRip CRCs
Flacify computes an AccurateRip v1 CRC for each track and writes it as ACCURATERIPCRC and FLACIFYCRC Vorbis comment tags on the FLAC file.
metaflac --list file.flac | grep ACCURATERIPCRC
Configuration
Settings are stored in ~/.config/flacify/config.json. On first launch, a setup wizard walks you through the basic configuration.
Built on open source
- cdparanoia — CD audio extraction
- FLAC — Audio encoding and metadata
- Terminal.Glue — Terminal UI framework
- MusicBrainz — Album metadata lookup
- TagLibSharp — Audio metadata reading