DragonFly On-Line Manual Pages
CRIPPLE(1) USER COMMANDS CRIPPLE(1)
NAME
cripple - command line CD ripper/encoder wrapper with cddb support
SYNOPSIS
cripple [ options ]...
DESCRIPTION
cripple is a basic CD ripper that as it comes uses CDparanoia/cdda2wav
and BladeEnc/LAME to rip and encode tracks from a CD. The useful things
it can do are querying the freedb (http://www,freedb.org) for
information on a CD by HTTP requests (optionally via a proxy). It also
writes ID3v1.1 tags to the MP3 files it makes.
Without any options cripple will read the table of contents of the CD
in the default CDROM drive, query the default freedb server for
information and then rip + encode all audio tracks on the CD to the
current directory using the default ripper and encoder with default
options.
Encoded files produced by cripple have names of the form,
Artist - Album - Track no. - Track Name.extension
or for compilations,
Album - Track no. - Artist - Track Name.extension
(a compilation is denoted by the CDDB disc artist set to "Various")
OPTIONS
-a --ripper-opts opts
pass command line options to ripper in place of defaults. Note
that device, speed and track number specification are done
separately. Have a look at output from -r to see how options
are used.
-c --comment text
copy text (<= 28 chars) to the comment field of each ID3 tag
-C --capitalise none|simple|clever|lower|upper
how to capitalise name fields. default is none.
none leave alone.
simple first letter of each 'word' is upper.
clever as above, but lower certain words.
lower lower all characters.
upper upper all characters.
This is a matter of personal preference, freedb entries are
supposed to be capitalised, but that's not allways the case.
clever is good for plain english names.
-d --device dev
use device file dev rather than compiled-in default (usually
/dev/cdrom). Note for SCSI drives this is the CDROM ioctl device
(e.g. /dev/srN, /dev/scdN) rather than the SCSI generic device
(e.g. /dev/sgN).
On win32 both full (e.g. \\.\D:) and short (e.g. D:) forms are
accepted. default is the lowest-letter CDROM drive found.
-D --readdata
read data tracks (mode2 only) to files with .bin extension.
frames are stripped to 2048 bytes. works OK for CD-Extra data
tracks, but pretty useless otherwise.
-e --eject
eject CD when done.
-E --encoder bladeenc|lame|flac
encoder to use. options set with -O. default is lame.
-F --fat
convert certain characters (\:*?"<>|) in filenames to '_', as
these characters are not allowed on FAT filesystems. May also be
needed on NTFS. If you get strange errors when writing files
with these characters in their name then try using this. This is
enabled by default on win32.
-h --help
brief help.
-i --infile file
read cddb info from file rather than querying server.
-o --outfile file
write server response to file for debugging or later use with
-i.
-O --encoder-opts opts
pass command line options to encoder in place of defaults.
Mostly useful for setting bitrate/quality. Note that file
handling options are done separately. Have a look at output
from -r to see how options are used.
-p --path path
where to rip to.
-q --justquery
cddb query only - use for testing or saving response for ripping
latter (see -i, -o).
-r --norip
only pretend to rip - don't actually make system() call or try
tagging files.
-R --ripper cdparanoia|cd-paranoia|cdda2wav
ripper to use. default is cdparanoia (cd-paranoia on win32).
-s --server host:port/cgi_path
use host instead of compiled-in default http server. port and
cgi_path are optional.
-S --speed n
set cd drive speed to n. also pass speed to ripper. 0 gives
maximum speed (on linux at least).
-t --tracks m[,n]
rip from track m to track n. default is whole disc. (',' is any
non-number)
-T --toc
print a representation of the CD Table Of Contents and discid,
then exit. useful for testing/debuging.
-w --blankfile file
write blank xmcd format file for CD so you can manually fill in
fields (for use with -i or submission to the freedb).
-x --proxy host:port
use http proxy, port must be given. This overrides any compiled
in proxy setting. A null string will disable any compiled in
proxy.
FILENAME SUBSTITUTIONS
in filenames following -i|o|w options, the following will be converted:
%d --> discid in "%08lx" format. This is just to save effort when
getting info for several CDs prior to ripping them.
%% --> literal '%'
"-" will use stdin (-i) or stdout (-o|w).
EXAMPLES
query freedb for data then if all is well, rip all tracks with default
ripper/encoder at default quality to /music:
cripple -p /music
query freedb for data and copy it to cd_info. Later on, rip disc with
default settings using saved info:
cripple -qo cd_info
...
cripple -i cd_info
query a load of discs, saving their info to files named with their
discids, later rip them all in any order:
cripple -qo %d /* repeat for each cd */
...
cripple -i %d /* repeat for each cd */
If you don't like any of the information it retrieves, you can just
edit the xmcd file produced by the -o option.
A complicated example:
cripple --encoder=bladeenc --encoder-opts=-128 -ep /music -S 8
--server=uk.freedb.org --proxy=webcache.mydomain:1234
--capitalise=clever --ripper=cdda2wav
set drive speed to 8. query uk.freedb.org via webcache.mydomain:1234.
Capitalise all track/artist/album names with 'clever' algorithm. use
cdda2wav and bladeenc to produce stereo 128kb/s MP3 files of all audio
tracks on CD, writing them in directory /music. eject CD tray after
successful rip.
You can preset most of these options at compile time.
DEVICE FILES
I only have experience with linux, but some of the following may be
applicable on other systems too.
The linux kernel can be configured to support just about any CD drive
trough the Uniform CD-ROM driver (see <linux/cdrom.h>,
linux/Documentation/cdrom/cdrom-standard.tex, linux/drivers/cdrom/*). I
think most other OSes do a similar thing, presenting loads of differnt
drives through a single API. This makes most common tasks very simple
and hence it is the interface used by programs such as audio cd players
and the like. However the unreliable nature of digital audio extraction
means that great benefits in error detection, correction and speed can
be gained by using the drive directly, bypassing the uniform driver
layer. Linux only supports this for SCSI devices, which can use the
SCSI Generic (/dev/sgN) interface. Drives on most other busses (ATAPI,
USB...) can be configured as SCSI devices by using an appropriate SCSI
adapter emulation (e.g. ide-scsi for ATAPI). SCSI devices will then be
accessible by 2 device files, the uniform CD-ROM interface e.g.
/dev/srN or /dev/scdN (assuming the kernel has been told to use it),
and the generic device e.g. /dev/sgN.
cripple uses only the uniform CD-ROM device (often misleadingly
referred to as the ioctl device), and this is also what it passes to
the ripper. If the device is configured as an IDE device then
cdparanoia will use the uniform interface, which is not ideal. If the
device is configured as a SCSI device then cdparanoia will determine
the associated SCSI generic device and use that.
This means that for SCSI drives a user must have permissions to access
both the cdrom device and the corresponding sg device.
BUGS
user should be able to select database entry to use when there are
multiple matches.
only tested on linux and cygwin -- may not work on other OSes.
SEE ALSO
lame(1), cdda2wav(1), cdparanoia(1), cd-paranoia(1), flac(1),
http://www.freedb.org
cripple-0.06b May 4, 2005 CRIPPLE(1)