NAME:
ripit - Perl script to create .flac .ogg .mp3 or .m4a (aac) files from
an audio CD.
SYNOPSIS:
ripit [options]
DESCRIPTION:
This Perl script makes it a lot easier to create "mp3" files from an
audio CD. RipIT supports Flac, Lame, Oggenc, Faac, mp4als and Musepack.
Artist and song titles are retrieved either with the CDDB_get.pm from
freedb.org or using WebService::MusicBrainz.pm from MusicBrainz.org.
It is possible to submit and edit CDDB entries at freedb.org,
submission of MusicBrainz data need a login. Hidden tracks and ghost
songs are detected and split into chunks of sound, a toc or inf files
permit to burn the WAV files with text and no gaps in DAO mode. Several
encoder formats and qualities can be used at the same time and encoded
into different directories.
VERSION:
RipIT Version 3.8.0
OPTIONS:
[track_selection]
Tracks to rip from. If not specified, all tracks will be
ripped. Specify a single track by using a single number, or a
selection of tracks using numbers separated by commas or
hyphens, e. g. 2,6,10, or 3,5,7-9. Using a number followed by a
comma or hyphen will rip from that track to the end of the CD i.
e. 3,5- rips track 3 and from track 5 to the last one. Default:
not set.
--merge ordered list of comma separated intervals
Place a hyphen (-) or a plus (+) between first and last track
number to be merged. Omitting the last number will merge all
subsequent tracks. Separate several intervals with commas.
Default: not set.
-I, --span start-endtime
Define an interval to be ripped when using cdda2wav or
cdparanoia. The hyphen is mandatory. The format of start and
end-time is according to cdparanoia hh:mm:ss.ff in
hours/minutes/seconds/frames, but precision is set to seconds,
i. e. frames will be ignored. Zero fields need not be specified
and the value of seconds may be larger than 60. When using
cdda2wav this option translates the values to the -o and -d
options of cdda2wav. When using option merge, endtime is related
to the last track in the selection. Default: not set.
-o, --outputdir dir
Where the sound should go. If not set, $HOME will be used.
Default: not set.
-d, --device cddevice
Path of audio CD device, default: /dev/cdrom.
--scsidevice cddevice
Device name for special devices if the non ripping commands
(except eject commands) shall be executed on a different device
node. This might be useful for some old SCSI devices. If not set
the cddevice of option --device will be used. Default: not set
-r, --ripper number
CD ripper to use, 0 - dagrab, 1 - cdparanoia, 2 - cdda2wav, 3 -
tosha, 4 - cdd. Because cdparanoia and dagrab are the only
rippers in this list that immediately fail on data tracks, RipIT
can create an error.log if problems are encountered and
continues to rip and encode without endless looping! Please use
dagrab or cdparanoia, otherwise RipIT might hang while waiting
for data tracks. Default: 1 - cdparanoia.
--ripopt options
User definable options for specific ripper. Quote them if
necessary. Default: not set.
--nicerip number
Set niceness of ripping process, default: 0.
-Z, --disable-paranoia [number]
When using dagrab, the number of retries will be set to 3, with
cdparanoia this option is equal to the -Z option of cdparanoia.
The number can be set to 0 (paranoia on), to 1 (paranoia off) or
to 2 to switch paranoia off if a track fails or gets a timeout.
RipIT will retry that failed track without paranoia or give up.
Ripping will then continue with paranoia on. Default: 0 ‐ off,
i. e. use paranoia mode.
--ghost
Analyze each wav for gaps and split it into chunks if gaps are
detected and/or try to trim lead-in/out. This may override
option merge. Delete blank tracks if only silence ("zero bytes")
are found. Experimental! Default: off.
--extend seconds
When using option --ghost enlarge chunk by amount of seconds at
end if possible, or track may be trimmed if value is small (e.g.
0.3), use with caution! Default: 2.0.
--prepend seconds
When using option --ghost enlarge chunk by amount of seconds at
beginning, if possible, or track may be trimmed if value is
small (e.g. 0.3), use with caution! Default: 2.0.
-c, --coder number
Encoder(s) to use, 0 - Lame (for mp3), 1 - Oggenc, 2 - Flac, 3 -
Faac, 4 - mp4als, 5 - Musepack, a comma separated list, or as an
array. The same encoder may be stated more than once, but
different output-directories must be specified stating the
--ditemplate for each encoder or using the $quality parameter in
option --dirtemplate or --tracktemplate. See below. Default: 0.
--faacopt Faac-options
Pass other options to the encoder. If the same encoder has been
stated more than once, use a comma separated list. Quote them
with double quotes if needed; default: not set.
--flacopt Flac-options
Pass other options to the encoder. If the same encoder has been
stated more than once, use a comma separated list. Quote them
with double quotes if needed; default: not set.
--lameopt Lame-options
Pass other options to the encoder. If the same encoder has been
stated more than once, use a comma separated list. Quote them
with double quotes if needed; default: not set.
--museopt Musepack-options
Pass other options to the encoder. If the same encoder has been
stated more than once, use a comma separated list. Quote them
with double quotes if needed; default: not set.
--mp4opt Mp4als-options
Encoder mp4als does not seem to accept any options. If the same
encoder has been stated more than once, use a comma separated
list. Quote them with double quotes if needed; default: not set.
--oggencopt Oggenc-options
Pass other options to the encoder. If the same encoder has been
stated more than once, use a comma separated list. Quote them
with double quotes if needed; default: not set.
-q, --quality quality
A comma separated list of values or the word "off", passed in
the same order as the list of encoders! If no encoders passed,
follow the order of the config file! Quality for oggenc: (1-10),
highest = 10; compression level for Flac: (0-8), lowest
compression = 0; quality for Lame in vbr mode: (0-9), best
quality = 0; or quality for Faac: (10-500), highest = 500;
mp4als seems not to accept any compression level, set to zero;
quality for Musepack: (0-10), best quality = 10; default:
5,3,5,100,0,5. The value "off" turns option quality off.
E. g. --coder 2,0,1,3 --quality 3,4,5,300 sets compression level
for Flac to 3, Lame-quality to 4, Oggenc-quality to 5 and Faac
quality to 300.
-v, --vbrmode mode
Variable bitrate, only used with Lame, mode is new or old, see
the Lame manpage. The Lame-option quality will be changed to -V
instead of -q if vbr-mode is used; default: not set.
-b, --bitrate rate
Encode "mp3" at this bitrate for Lame. If option --vbrmode used,
bitrate is equal to the -b option, so one might want to set it
"off"; or set if "off" if all options are passed to --lameopt!
Default: 128.
-B, --maxrate rate
maxrate (Bitrate) for Lame using --vbrmode is equal to the -B
option in Lame or the -M option in Oggenc, default: 0.
-S, --preset mode
Use the preset switch when encoding with Lame. Combined with
option --vbrmode new the preset fast will be used. Use
--vbrmode old not to use fast VBR. Mode is one of: insane (320
kbps @ CBR), extreme (256 kbps), standard (192 kbps) or
medium (160 kbps) or any other valid bitrate. Default: off.
-W, --chars [list]
Exclude special characters in file names and path. The argument
is optional. The argument accepts a list of any characters. One
might escape the characters or use double quotes to pass them on
the command line. The argument also accepts the words NTFS, HFS
or off. Following characters will be erased, if no argument
stated or the word NTFS is passed: |\:*?$ plus blanks and
periods at beginning and end of file names and directories. When
using the word HFS, only colons will be purged plus blanks and
periods at beginning of file names and directories. Pass the
word "off" as argument to set the option off again. Default:
off.
--comment comment
Specify a comment for the comment-tag for Lame, Faac and
Musepack, or the description-tag for Oggenc and Flac. The
special comment cddbid or discid will place the cddbid (used by
freedb) or the discid (used for MusicBrainz) into the comment.
Default: not set.
-g, --genre genre
Specify (and override CDDB) genre, must be a valid ID3-genre if
using Lame, can (but shouldn’t) be anything if using other
encoders, default: not set.
-y, --year year
Specify (and override CDDB) the year of year-tag for Lame, Faac
and Musepack, or the date-tag for Oggenc and Flac. Default: not
set.
-D, --dirtemplate ’"foo parameters"’
Use single and double quotes to pass the parameters of the
templates! Allowed are any legal characters, slashes for multi-
level directories and following parameters: $album, $artist,
$iletter, $genre, $quality, $suffix, $trackname, $tracknum,
$year and $trackno; E. g. ’"$suffix
$quality/my_snd_dir/$iletter/$artist/$year ‐ $album"’. The
parameter $iletter is the initial letter of the artist name;
$trackno is the total number of tracks of the release, this
might be helpful to distinguish different releases with exactly
the same name; $quality is needed, if one wants to encode the
same format at different qualities in the same run. Note that
$quality reflects the encoder options and not the arguments of
option --quality which might be set to "off". Or state different
dirtemplates: the option is an array, so one can use several
different dirtemplates in the same order as the encoders. If
less dirtemplates than encoders are stated, the last dirtemplate
will be used for subsequent encoders and the wav-directory, see
EXAMPLES below. Default: ’"$artist - $album"’.
-T, --tracktemplate ’"foo parameters"’
See above. The tracktemplate is not an array, only one can be
stated. Default: ’"$tracknum $trackname"’.
--sshlist list
Comma separated list of remote machines where RipIT should
encode. The output path must be the same for all machines.
Specify the login (login@machine) only if not the same for the
remote machine. Else just state the machine names. See EXAMPLES
for more information, default: not set.
--scp If the file system can not be accessed on the remote machines,
scp (copy) the WAV files to the remote machines, default: off.
--local
Only used with option --sshlist; if all encoding shall be done
on remote machines, use --nolocal, default: on.
--mb Access MusicBrainz DB via WebService::MusicBrainz module instead
of the http protocol (see below). One needs the discid
calculation perl module or command to be installed and in the
path. Negate to switch option off again. Default: off.
-C, --cddbserver server
CDDB server, either freedb.org, freedb2.org or musicbrainz.org.
Default freedb.org. Note, the full address is
"mirror".freedb.org, i. e. default is freedb.freedb.org.
Exception: freedb2.org and musicbrainz.org have no mirrors,
their full addresses are: freedb2.org and freedb.musicbrainz.org
on port 80 (see transfer mode).
-t, --transfer mode
Transfer mode, cddb or http, will set default port to 8880 or 80
(for http), default: cddb. Note: use http mode with CDDB servers
freedb2.org or musicbrainz.org.
-m, --mirror mirror
Choose "freedb" or one of the possible freedb mirrors, default:
freedb. For more information check the webpage www.freedb.org.
There is no list of mirrors available these days. This option
might be obsolete as freedb uses random servers, but the default
setting is mandatory.
-L, --protocol level
CDDB protocol level for CDDB query. Level = 6 supports UTF-8 and
level = 5 not. Use level = 5 to suppress UTF-8. Cf. option
--utftag below. Default: 6.
-P, --proxy address
The http proxy to use when accessing the cddb server. The CDDB
protocol must be http! Default: not set.
-n, --nice number
Set niceness of encoding process, default: 0.
-a, --archive
Read and save CDDB files in $HOME/.cddb/"category" directory,
where the "category" is one of the 11 CDDB categories. Default:
off.
-e, --eject
Ejects the CD when finished, if hardware supports it. Use
--noeject to switch it off. Default: off.
--ejectcmd command
Command to be used for ejection or loading of CD tray. Should be
specified within FreeBSD even if option --eject is not used to
enable RipIT to load the CD tray. One does not need to mention
the words close or eject or options like -t, RipIT does it.
Default: eject.
--ejectopt options
Options for ejection command to be used for ejection or loading
of CD tray. Default: the path to the CD device.
--halt Powers off the machine when finished if configuration supports
it, default: off.
-s, --submission
Specify --nosubmission if the computer is offline and the
created file cddb.toc shall be saved in the home directory
instead of being submitted. With option --archive it will also
be saved in the $HOME/.cddb directory. Note: it is really easy
to resubmit incomplete CDDB entries! One can confirm each
existing field with Enter and add a missing genre or year. The
purpose of this option is also to permit the user to edit the
CDDB data for the own filenames & tags and not to overwrite the
original CDDB entry! Default: on.
-M, --mail address
Users return email address, needed for submitting an entry to
freedb.org. Default: not set.
-p, --playlist number
Create the m3u playlist file, or use --playlist 0. For
filenames without full path use --playlist 2. Default is full
path for filenames. Default 1 - on.
-A, --book number
Create an audiobook file, i. e. merge all tracks into one sinlge
file, option --ghost will be switched off and file suffix will
be m4b instead of m4a. Make sure to use encoder faac, ripit will
no check that. The installed version must support the -w option
to write tags. A chapter file will be written for chapter marks.
Default: off
-i, --interaction
Specify --nointeraction if ripit shall take the first CDDB entry
found and rip without any questioning. Default: on.
--lcd Use lcdproc to display status, default: not set.
--lcdhost
Specify the lcdproc host, default: localhost.
--lcdport
Specify the lcdport, default: 13666.
--infolog file
Log operations (system calls, file/directory creation) to file
given with full path; default: not set.
-l, --lowercase
Lowercase filenames, default: off.
-u, --underscore
Use underscores (_) instead of spaces in filenames, default:
off.
--uppercasefirst
Uppercase first letter of each word in filenames and tags. Use
this option if the CDDB entry is uppercase only. Default: off.
-U, --utftag
Keep Lame-tags in UTF-8 or decode them (but not the filenames)
from UTF-8 to ISO8859-1. Applies only to mp3 (Lame). May be
useful for tags with special characters and if mp3-player
doesn’t support Unicode. Using Musepack one might want to pass
the Musepack option --unicode to option museopt. Default: off.
--rip Rip the CD, to be used as --norip if wav-files are present. Used
for debugging. Default: not set.
--encode
Do encode the wavs. If only the wav-files shall be created,
prevent encoding with --noencode (and use option --wav, see
below). Default: on.
-w, --wav
Keep the wav files after encoding instead of deleting them,
default: off.
-N, --normalize
Normalizes the wave-files to a given dB-value (default: -12dB).
Default: off.
This is useful when encoding
* for hardware or software that doesn’t support the
replaygain‐feature
* to audio formats without replaygain capabilities.
--normcmd
Command to use for normalizing, default: normalize.
-z, --normopt
Options to pass to normalize. Possible values:
-a -nndB : Normalize to -nn dB, default is -12dB,
Value range: All values <= 0dB
Example : normalize -a -20dB *.wav
-b : Batch mode ‐ loudness differences between
individual tracks of a CD are maintained
-m : Mix mode ‐ all track are normalized to the
same loudness
-v : Verbose operation
-q : Quiet operation
For further options see normalize documentation
(http://normalize.nongnu.org). Please note that normalizing to
a high dB value, e.g. -6dB or less will lead to severe
compression of the audio signal, thus losing sound quality.
Keeping the default value of -12dB is recommended.
Default: -b Option v (q) will be set according to verbosity
chosen.
--cdtoc number
Number n = 1 to create a toc file to burn the wavs with CD-Text
using cdrdao or cdrecord. Default: off.
--inf number
Number n = 1 to create inf files to burn the wavs with CD-Text
using wodim or cdrecord. Default: off.
-h, --help
Print this and exit.
-V, --version
Print version and exit.
-x, --verbose number
Run silent (do not output comments, status etc.) (n = 0), with
minimal output (n = 1), normal without encoder messages (n = 2),
normal (n = 3), verbose (n = 4), extremely verbose (n = 5).
Default 3.
--config
Read parameters from config file or specify --noconfig to
prevent reading it; default: on.
--save Add parameters passed on command line to a new config file. This
does not overwrite other existing settings. Options of an
existing config file will be adopted and the old file saved as
config.old. Default: off.
--savenew
Save all parameters passed on command line to a new config file,
backup an existing file to config.old. Creates a default config
file if no options are passed on command line. Default: off.
--loop value
Continue ripping and encoding as soon as the previous CD
finished. This option forces ejection (--eject). The value is
either 0 for normal use or 1 for standard looping. Experimental
value 2 migth be used to force immediate restart of ripping
process. This will spoil the output, this will show the prompt
although a child process is running (waiting for a new CD) and
must be terminated manually. Default: off.
--quitnodb value
Give up CD if no CDDB entry found. Useful if option --loop or
--nointeraction are on. Default behaviour is to let operator
enter data or to use default artist, album and track names.
Possible values: 0 - off, 1 - on, default: off
--resume
Resume a previously started session. Can be used to prevent
increment directory names if it already exists. Default: off.
-O, --overwrite argument
Default behaviour of Ripit is not to overwrite existing
directories, a suffix will be added if directory name exists.
Use option overwrite to prevent this and either overwrite a
previous rip (y) or force Ripit to quit (q) or even eject the
disc (e). If ejection is choosen, the disc will be ejected even
if option eject has not been switched on. Default: off (n)
--dpermission number
Change the directory permission to number. Default: 0755.
--fpermission number
Change the file permission to number. Default: 0644.
--md5sum
Create a MD5-sum file for each type of sound files.
--threads number
Comma separated list of numbers giving maximum of allowed
encoders to run at the same time. In conjunction with option
sshlist the number for the local machine is mandatory and must
be stated first. Default: 1.
--execmd command
State a command to be executed when ripit finshed. Make sure to
escape the command if needed. Default: not set.
EXAMPLES
To specify a CD device, type
ripit --device /dev/sr1
To specify the output directory, type
ripit --outputdir /foo/paths/
To rip and encode a special track selection, type
ripit 1,3-6,8-11
To use several encoders in the same run, type
ripit --coder 1,0,2 --quality 3,5,6
To use Lame with variable bitrate (VBR), type
ripit --vbrmode new --bitrate 0
Note, one should reset the --bitrate to 0 (zero) if the -b option of
Lame is not desired. According to VBR mode in Lame, use "new" or "old".
It is recommended to use the preset switches for Lame, (see Lame
man-page) and specify fast encoding with --vbrmode new (use --vbrmode
old to switch off the fast encoding)
ripit --preset extreme --vbrmode new
To pass options related to the encoder use the according encoder option
switch: e.g. to use the managed mode with oggenc:
ripit -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality
"off"
Normalize your wave-files prior to encoding:
ripit --normalize
Normalize your files to -18dB using "mix mode" (see normalize
documentation)
ripit --normalize --normopt "-m -a -18dB"
To define a directory template where the sound files should go, type
ripit --dirtemplate ’"$artist - $year"’
To create 2 directory levels, as used in other environments, type
ripit --dirtemplate ’"$artist/$album"’
To save a config file in ~/home/.ripit/ with options: to use Lame and
Oggenc, don’t create a m3u file, archive the CDDB entry files in
~/.cddb/"category"/ and to eject CD when done, type
ripit --coder 0,1 --playlist 0 --archive --eject --save
To do the job without any interaction, type
ripit --nointeraction
To use a network for encoding, make sure that the output paths are
equal on all machines!
ripit --sshlist sun,saturn,earth
where sun, saturn and earth are remote machines on which a user can
login via ssh without entering a password or passphrase! Note that the
paths must be equal for the user on all remote machines! If the login
is different on some machines, try
ripit --sshlist login1@sun,login2@saturn,login3@earth
If there is "no" identical path on the remote machines, then the user
might enter e.g. /tmp/ as output directory. If the file-system is not
mounted on each remote machine, one can try to copy the wavs to the
remote machines using option --scp.
ripit --sshlist sun,saturn,earth --scp
Check for ghost songs and trim very long lead-in/out:
ripit --ghost --prepend 1.0 --extend 1.0
Rip only first 30 seconds of each track (useful for testing)
ripit --span 0-30
Encode the same format in 2 qualities, at low quality for a portable,
at high quality for home:
ripit --dirtemplate ’"cbr/$artist/$year ‐ $album"’ \
--dirtemplate ’"preset/$artist ‐ $album"’ \
--coder 0,0 --bitrate off --quality off,off \
--lameopt "-b 128 -q 2;--preset extreme"
Force RipIT to use one and the same directory for all sound files:
ripit --dirtemplate ’"/"’ --outputdir="/media/sound" \
--resume
FILES
User config file:
$HOME/.ripit/config
/etc/ripit/config
/usr/share/doc/packages/ripit/README
/usr/share/doc/packages/ripit/HISTORY
/usr/share/doc/packages/ripit/LICENSE
BUGS
Probably there are more than some.
SEE ALSO
cdparanoia(1), lame(1), oggenc(1), flac(1), normalize(1), cdda2wav(1)
AUTHORS
RipIT is now maintained by Felix Suwald, please send bugs, wishes
comments to ripit_[at]_suwald_[dot]_com with a concise subject.
For bugs, wishes and comments about lcdproc, please contact
max.kaesbauer_[at]_gmail_[dot]_com.
Former maintainer: Mads Martin Joergensen; RipIT was originally
developed by Simon Quinn.
This manpage was originally created for the Debian GNU/Linux system by
help2man 1.36 and optimized by Elimar Riesebieter <riesebie@lxtec.de>,
enhanced and updated by Felix Suwald.