Overview
Add support for ripping audio CDs alongside existing DVD/Blu-ray/UHD disc support.
Audio Ripping Tools/Libraries
Command-Line Utilities
- abcde (A Better CD Encoder) - Popular all-in-one CD ripper/encoder
- Supports multiple formats and backends
- Scriptable and highly configurable
- cdparanoia - Robust CD ripper with error correction
- Industry standard for audio extraction
- Can be used as backend for other tools
- whipper - Modern CD ripper focusing on accuracy
- Uses AccurateRip/MusicBrainz
- Python-based, well-maintained
- morituri - Accurate CD ripper (predecessor to whipper)
- cd-discid - For disc identification
Libraries
- libcdio - CD access library (C)
- python-cdio - Python bindings for libcdio
- ruby-cdparanoia - Ruby bindings
Audio Format Support
The feature should support encoding to:
- MP3 (using lame or ffmpeg)
- FLAC (lossless, using flac encoder)
- AAC/M4A (using fdkaac or ffmpeg)
- Opus (modern, efficient)
- Vorbis/OGG (open format)
- WAV (uncompressed, for archival)
Metadata/Disc Identification APIs
- MusicBrainz API (recommended, free, open)
- Disc ID lookup
- Track metadata (artist, album, year, genre)
- Cover art via Cover Art Archive
- CDDB/freedb (legacy, but still supported)
- AccurateRip (for verification of rip accuracy)
- Discogs API (alternative metadata source)
Implementation Considerations
Disc Detection Updates
The existing IDiscTypeDetector and DiscScanner will need to:
- Detect if inserted disc is audio CD vs data disc (DVD/BD/UHD)
- Return appropriate disc type enum value (add
Audio type)
- Route to appropriate ripping service based on disc type
Architecture Changes
- Create
IAudioDiscRipper interface
- Implement
AudioDiscRipper service
- Add
IAudioEncoder for format conversion
- Create
IAudioMetadataProvider for MusicBrainz/CDDB lookups
- Update
RipOptions to support audio-specific options:
--format (mp3, flac, etc.)
--bitrate (for lossy formats)
--quality (compression level)
--paranoia-mode (error correction level)
File Naming
Audio files should follow standard naming conventions:
- Single disc:
{Artist} - {Album} ({Year})/{TrackNumber:D2} - {Title}.{ext}
- Multi-disc:
{Artist} - {Album} ({Year})/Disc {DiscNumber}/{TrackNumber:D2} - {Title}.{ext}
Metadata Embedding
- ID3v2 tags for MP3
- Vorbis comments for FLAC/Opus/OGG
- MP4 atoms for AAC/M4A
- Include: artist, album, title, track number, year, genre, cover art
User Experience
The tool should automatically:
- Detect audio CD insertion
- Query MusicBrainz for disc ID and metadata
- Display track listing with artist/album info
- Rip tracks with error correction
- Encode to selected format(s)
- Embed metadata and cover art
- Organize files in output directory
Example Usage
# Rip to FLAC (lossless)
dotnet run -- --output ~/Music --format flac
# Rip to MP3 V0 (high quality VBR)
dotnet run -- --output ~/Music --format mp3 --quality v0
# Rip to multiple formats
dotnet run -- --output ~/Music --format flac,mp3 --bitrate 320
Related Issues
This feature complements existing video disc ripping functionality and uses similar architecture patterns.
Overview
Add support for ripping audio CDs alongside existing DVD/Blu-ray/UHD disc support.
Audio Ripping Tools/Libraries
Command-Line Utilities
Libraries
Audio Format Support
The feature should support encoding to:
Metadata/Disc Identification APIs
Implementation Considerations
Disc Detection Updates
The existing
IDiscTypeDetectorandDiscScannerwill need to:Audiotype)Architecture Changes
IAudioDiscRipperinterfaceAudioDiscRipperserviceIAudioEncoderfor format conversionIAudioMetadataProviderfor MusicBrainz/CDDB lookupsRipOptionsto support audio-specific options:--format(mp3, flac, etc.)--bitrate(for lossy formats)--quality(compression level)--paranoia-mode(error correction level)File Naming
Audio files should follow standard naming conventions:
{Artist} - {Album} ({Year})/{TrackNumber:D2} - {Title}.{ext}{Artist} - {Album} ({Year})/Disc {DiscNumber}/{TrackNumber:D2} - {Title}.{ext}Metadata Embedding
User Experience
The tool should automatically:
Example Usage
Related Issues
This feature complements existing video disc ripping functionality and uses similar architecture patterns.