forked from whipper-team/whipper
-
Notifications
You must be signed in to change notification settings - Fork 0
Python CD-DA ripper preferring accuracy over speed
License
seisure/whipper
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
morituri is a CD ripper aiming for accuracy over speed. Its features are modeled to compare with Exact Audio Copy on Windows. RATIONALE --------- For a more detailed rationale, see my wiki page 'The Art of the Rip' at https://thomas.apestaart.org/thomas/trac/wiki/DAD/Rip FEATURES -------- * support for MusicBrainz for metadata lookup * support for AccurateRip verification * detects sample read offset and ability to defeat cache of drives * performs test and copy rip * detects and rips Hidden Track One Audio * templates for file and directory naming * support for lossless encoding and lossy encoding or re-encoding of images * tagging using GStreamer, including embedding MusicBrainz id's * retagging of images * plugins for logging * for now, only a command line client (rip) is shipped REQUIREMENTS ------------ - cdparanoia, for the actual ripping - cdrdao, for session, TOC, pregap, and ISRC extraction - GStreamer and its python bindings, for encoding - gst-plugins-base >= 0.10.22 for appsink - python musicbrainz2, for metadata lookup - python-setuptools, for plugin support - python-cddb, for showing but not using disc info if not in musicbrainz - pycdio, for drive identification (optional) GETTING MORITURI ---------------- If you are building from a source tarball or checkout, you can choose to use morituri installed or uninstalled. - getting: - Change to a directory where you want to put the morituri source code (For example, $HOME/dev/ext or $HOME/prefix/src) - source: download tarball, unpack, and change to its directory - checkout: git clone git://github.com/thomasvs/morituri.git cd morituri git submodule init git submodule update ./autogen.sh - building: ./configure make - you can now choose to install it or run it uninstalled. - installing: make install - running uninstalled: ln -sf `pwd`/misc/morituri-uninstalled $HOME/bin/morituri-git morituri-git (this drops you in a shell where everything is set up to use morituri) RUNNING MORITURI ---------------- morituri currently only has a command-line interface called 'rip' rip is self-documenting. rip -h gives you the basic instructions. rip implements a tree of commands; for example, the top-level 'changelog' command has a number of sub-commands. Positioning of arguments is important; rip cd -d (device) rip is correct, while rip cd rip -d (device) is not, because the -d argument applies to the rip command. Check the man page (rip(1)) for more information. RUNNING UNINSTALLED ------------------- To make it easier for developers, you can run morituri straight from the source checkout: ./autogen.sh make misc/morituri-uninstalled GETTING STARTED --------------- The simplest way to get started making accurate rips is: - pick a relatively popular CD that has a good change of being in the AccurateRip database - find the drive's offset by running rip offset find - wait for it to complete; this might take a while - optionally, confirm this offset with two more discs - analyze the drive's caching behaviour rip drive analyze - rip the disc by running rip cd rip --offset (the number you got before) FILING BUGS ----------- morituri's bug tracker is at https://thomas.apestaart.org/morituri/trac/ When filing bugs, please run the failing command with the environment variable RIP_DEBUG set; for example: RIP_DEBUG=5 rip offset find > morituri.log 2>&1 gzip morituri.log And attach the gzipped log file to your bug report. KNOWN ISSUES ------------ - no GUI yet GOALS ----- - quality over speed - support one-command automatic ripping - support offline ripping (doing metadata lookup and log rewriting later) - separate the info/result about the rip from the metadata/file generation/... CONFIGURATION FILE ------------------ The configuration file is stored according to http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html when possible. It lives in $XDG_CONFIG_HOME/morituri/morituri.conf The configuration file follows python's ConfigParser syntax. There is a "main" section and zero or more sections starting with "drive:" - main section: - path_filter_fat: whether to filter path components for FAT file systems - path_filter_special: whether to filter path components for special characters - drive section: All these values are probed by morituri and should not be edited by hand. - defeats_cache: whether this drive can defeat the audio cache - read_offset: the read offset of the drive CONTRIBUTING ------------ - Please send pull requests through github. - You can always flattr morituri to donate: https://flattr.com/submit/auto?%20%20user_id=thomasvs&url=https://thomas.apestaart.org/morituri/trac/&%20%20title=morituri&%20%20description=morituri&%20%20language=en_GB&tags=flattr,morituri,software&category=software rip command tree ---------------- rip accurip show show accuraterip data offset find find drive's read offset using AccurateRip verify verify drive's read offset using AccurateRip cd rip rip the cd debug encode encode a file htoa find rip rip the htoa if it's there image verify verify the cd image encode encode to a different codec retag retag the image with current MusicBrainz data
About
Python CD-DA ripper preferring accuracy over speed
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Python 92.9%
- TeX 5.2%
- C 1.2%
- Dockerfile 0.7%