How whipper-team/whipper works
Whipper is a command-line Linux CD-DA ripper focused on accurate extraction. The principal workflow is: a user invokes the rip command; Whipper reads disc layout and drive behavior, optionally resolves metadata, extracts and verifies tracks, encodes and names audio files, then records rip results. Separate commands expose drive, offset, image, metadata-lookup, and AccurateRip functions. The README documents additional capabilities such as batch ripping, HTOA, pre-emphasis reporting, and logger plugins. Some subsystem links reflect documented capabilities; sampled excerpts do not establish every internal call.
Main entry points: program.py Rip coordinator · main.py CLI dispatcher · accurip.py Checksum logic · cdparanoia.py Audio extraction
Components 27
Command interface
- CLI dispatcher
whipper/command/main.py - CD commands
whipper/command/cd.py - Drive commands
whipper/command/drive.py - Offset command
whipper/command/offset.py - Image command
whipper/command/image.py - AccurateRip command
whipper/command/accurip.py - Metadata lookup
whipper/command/mblookup.py
Disc analysis
- Configuration
whipper/common/config.py - Drive handling
whipper/common/drive.py - Disc table
whipper/image/table.py - Image formats
whipper/image/image.py - TOC extraction
whipper/program/cdrdao.py
Extraction and output
- Rip coordinator
whipper/common/program.py - Task runner
whipper/extern/task/task.py - Audio extraction
whipper/program/cdparanoia.py - Audio encoding
whipper/common/encode.py - Path templates
whipper/common/renamer.py
Metadata and verification
- Rip results
whipper/result/result.py - Rip logging
whipper/result/logger.py - Checksum logic
whipper/common/accurip.py - Checksum extension
src/accuraterip-checksum.c - MusicBrainz metadata
whipper/common/mbngs.py
Other components
- User
- Optical drive
- MusicBrainz service
- AccurateRip database
- Audio files
Connections 32
- User → CLI dispatcher: invokes
- CLI dispatcher → CD commands: dispatches
- CLI dispatcher → Drive commands: dispatches
- CLI dispatcher → Offset command: dispatches
- CLI dispatcher → Image command: dispatches
- CLI dispatcher → AccurateRip command: dispatches
- CLI dispatcher → Metadata lookup: dispatches
- CD commands → Rip coordinator: coordinates rip
- Rip coordinator → Configuration: reads settings
- Drive commands → Drive handling: manages drive
- Offset command → Drive handling: checks offset
- Rip coordinator → Drive handling: uses drive
- Rip coordinator → TOC extraction: reads TOC
- TOC extraction → Optical drive: reads disc layout
- Rip coordinator → Disc table: uses disc table
- Image command → Image formats: handles image
- Rip coordinator → MusicBrainz metadata: looks up metadata
- Metadata lookup → MusicBrainz metadata: queries metadata
- MusicBrainz metadata → MusicBrainz service: queries
- Rip coordinator → Task runner: runs tasks
- Rip coordinator → Audio extraction: extracts tracks
- Audio extraction → Optical drive: reads audio
- Audio extraction → Task runner: reports progress
- Rip coordinator → Audio encoding: encodes tracks
- Rip coordinator → Path templates: formats paths
- Audio encoding → Audio files: writes audio
- Rip coordinator → Checksum logic: verifies tracks
- AccurateRip command → Checksum logic: checks accuracy
- Checksum logic → Checksum extension: computes checksum
- Checksum logic → AccurateRip database: compares checksums
- Rip coordinator → Rip results: records outcome
- Rip results → Rip logging: formats log