Flacify Console

A keyboard-driven terminal UI for ripping CDs to FLAC with full MusicBrainz metadata and AccurateRip verification.

Features

Installation

System dependencies:
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

Landing screen
Landing screen — shown when no CD is detected
Dashboard
Dashboard — edit metadata before ripping
Settings
Settings — configure output directory, drive path, toggles
Genre editor
Genre manager — add, rename, or delete custom genres
Rip progress
Ripping in progress — per-track progress bars

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