RIPIT(1)
π RIPIT(1) β Ripit audio converter π
Okay bestie, welcome to RIPIT(1), the manual for Ripit audio converter. It's giving CD ripping, but make it cute and exact. π
β¨ NAME β¨
Ripit β a Perl script that creates flac, ogg, mp3, m4a (aac), als (mp4), mpc, wv or other files from an audio CD. Periodt. π
πΈ SYNOPSIS πΈ
ripit [options]
π¦ DESCRIPTION π¦
This Perl script makes it a lot easier to extract and compress sound files from an audio CD or a local directory with wav/flac files. No cap, it's the bestie that handles the boring bits.
Although Ripit ensures exact copy of the digital data with different verification possibilities, it aims to enhance the audio content for a more userfriendly experience. Tracks can be merged or partially ripped, hidden tracks (aka pregap tracks or HTOA) and ghost songs are detected and can be split, like all other tracks, into chunks of sound where silence has been trimmed away. Data tracks can be omitted to prevent ripper failure or waste of time on such tracks. Iconic.
Ripit supports Flac, Lame, Oggenc, Faac, mp4als, Musepack, Wavpack and ffmpeg. Artist and song titles are retrieved either with the CDDB_get.pm perl module from freedb.org or using WebService::MusicBrainz.pm from MusicBrainz.org. Several encoder formats and qualities or compression levels can be used in the same run (even the same encoder) and encoded into different directories. Distributed encoding and launch of more than one encoder process in the same time is possible. Multitasking queen energy.
Retrieval and different modifications of metadata is possible to ensure highly customized tagging, e.g. adding coverart, detection of Various Artists style at different levels of strictness or album gain, freedom to add any kind of personal tags and change of encoding format for tags used in mp3. External commands can be launched before and after ripping / encoding is done (providing access to all internal variables containing metadata), e.g. to ensure presence of coverart if not retrieved from coverartarchive.org or discogs.com. Tagging? Obsessed.
Additional processes take care of calculation of md5sums, generation of playlist files, creation of toc, cue or inf files e.g. enableing to burn the WAV files with text and no gaps in DAO mode. It is possible to submit and edit CDDB entries at freedb.org or submission of MusicBrainz data (ISRCs only) provided a login to access the MB site and of course to save this metadata locally for later use. Metadata saved locally? We love a backup plan.
πΏ VERSION πΏ
Ripit Version 4.0.0 β yes, bestie, we're on 4.0.0. π
β¨ OPTIONS β¨
Okay, this is the part where the manual gets thicc. Every flag, every argument, every default β we're keeping it all. π
[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, or3,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 track3and from track5to the last one.
To rip only audio tracks and to skip all data tracks (trailing or even in between) the tweeked argument 1-a might be useful. In this case Ripit will try to detect the number of audio tracks using cdparanoia toc query.
Default: not set.
--mergeordered 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. Do not use this option to merge the whole disc into one track, use option--cdcueor--bookinstead. Default: not set.-I,--spanstarttime-endtime β Define an interval to be ripped when usingcdda2wavorcdparanoia. The hyphen is mandatory. The format of start and end-time is according tocdparanoia hh:mm:ss.ffin 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 than60if no minutes and hours are stated. When usingcdda2wavthis option translates the values to the-oand-doptions ofcdda2wav. When using optionmerge, end time is related to the last track in the selection. Default: not set.-o,--outputdirdir β Full path of directory where the sound should go. If not set,$HOMEwill be used. Default: not set.-d,--devicecddevice β Path of the device containing the audio CD, default:/dev/cdrom.--scsidevicecddevice β 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 thecddeviceof option--devicewill be used. Default: not set.-r,--rippernumber β CD ripper to use,0- dagrab,1- cdparanoia,2- cdda2wav,3- rip (Morituri) (breaking parallelism, experimental),4- cdd (support not ensured). When data tracks are encountered because special track selection1-ahas not been used,cdparanoiaanddagrabare supposed to immediately fail and therefore allow Ripit to create anerror.logso that the encoder process can terminate if problems were encountered. This might not be the case depending the type of "copyprotection" is used and on the other hand it could be thatcdd2wavmay fail on such data tracks and enables Ripit to continue to rip and encode without endless looping. Use the appropriate ripper according to your needs and switch the ripper if needed or use the special track selection to omit data tracks.
Note when using rip (Morituri) alle directories must be defined with option --dirtemplate, including a separate wav directory which will be created by rip (Morituri). Further inconveniences might be due to the programs limitations and its recent development activity with behaviour changing almost dayly, breaking every wrappers capabilities.
Default: 1 - cdparanoia.
--ripoptoptions β User definable options for specific ripper. Quote them if necessary. Note that changing the ripper implies to update this option. Default: not set.--offsetnumber β User definable sample offset for the CD ripper. This will trigger option-Owhen usingcdparanoiaand option-owhen using rip (Morituri). Icedax (cdda2wav) seems not to provide a sample offset. Default: not set.-Q,--accuracynumber β Check ripped files at AccurateRip using Morituri (rip) which must be installed. One might need to specify a sample offset (see option--offset) to achieve accuracy. Default: off.-Y,--verifynumber β When usingcdparanoiarip tracknumbertimes until md5sum for 2 rips match, maximum tries is the number given as argument, default:1, i. e. no checks will be done.--niceripnumber β Set niceness of ripping process, default:0.-Z,--disable-paranoia[number] β When usingdagrab, the number of retries will be set to3, withcdparanoiathis option is equal to the-Zoption ofcdparanoia. The number can be set to0(paranoia on), to1(paranoia off) or to2to 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 optionmerge. Delete blank tracks if only silence ("zero bytes") are found. Experimental! Default: off.--extendseconds β When using option--ghostand only if a chunk of sound is detected, enlarge chunk by amount of seconds at end if possible (no silence will be added), or track may be trimmed if value is small (e.g.0.3), use with caution. Default:2.0.--prependseconds β When using option--ghostand only if a chunk of sound is detected, enlarge chunk by amount of seconds at beginning, if possible (no silence will be added), or track may be trimmed if value is small (e.g.0.3), use with caution. Default:2.0.-c,--codernumber β Encoder(s) to use,0- Lame (for mp3),1- Oggenc,2- Flac,3- Faac,4- mp4als,5- Musepack,6- Wavpack,7- ffmpeg, a comma separated list, or as an array. The same encoder may be stated more than once, but different output-directories must be specified (to prevent overwriting files with identical path) stating the--dirtemplatefor each encoder or using the$qualityparameter in option--dirtemplateor stating the--tracktemplatefor each encoder. See below. Default:0.--faacoptFaac-options β Pass other options to the encoder. If the same encoder has been stated more than once, use a comma separated list. Do not use this option for compression level, use option--qualityinstead. Quote them with double quotes if needed; default: not set.--flacoptFlac-options β Pass other options to the encoder. If the same encoder has been stated more than once, use a comma separated list. Do not use this option for compression level, use option--qualityinstead. Quote them with double quotes if needed; default: not set.--flacdecoptFlac decoding options β Additional options forflacwhen used to decode flac files. Might be needed to force (over) writing existing wav files: Default:-s(silent).--lameoptLame-options β Pass other options to the encoder. If the same encoder has been stated more than once, use a comma separated list. Do not use this option for quality settings, use option--qualityinstead. Quote them with double quotes if needed; default: not set.--museoptMusepack-options β Pass other options to the encoder. If the same encoder has been stated more than once, use a comma separated list. Do not use this option for quality settings, use option--qualityinstead. Quote them with double quotes if needed; default: not set.--musencMusepack-encoder β Choose Musepack encoder to be used, eithermpcencormppencfor older versions; default:mpcenc.--mp4optMp4als-options β Pass other options to the encoder. Option-MP4of encodermp4alsis mandatory to enable tagging of sound files. Use the appropriate options to alter compression level and speed. 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.--oggencoptOggenc-options β bestie, this is your lil' note-passing channel to the encoder π whatever extra options you wanna shove at it, you put them right here. If the same encoder got named more than once, hit it with a comma separated list. Do NOT use this one for quality settings tho β that's literally what--qualityis for, okay? Wrap them in double quotes if you need to. Default: not set. π--wavpackoptWavpack-options β same energy as above, but for Wavpack β¨ extra options get passed straight to the encoder. Named the same encoder twice? Comma separated list, queen. Double quotes if needed. Default: not set.--ffmpegoptffmpeg-options β and now for ffmpeg π extra options go to the encoder, comma separated list if ffmpeg got stated more than once, double quotes when needed. Default: not set.--ffmpegsuffixffmpeg-suffix β the suffix of the formats you wanna encode π¦. If ffmpeg got stated more than once, comma separated list, double quotes if needed. Default: not set.-q,--qualityquality β okay so this name is kinda misleading and I need you to not be fooled by it π it's a comma separated list of values, or the wordoff, and they get passed in the same order as the list of encoders. If you passed no encoders, it follows the order of the config file instead. The tea is: lossless encoders don't have a "quality", they have a compression level, so depending on which encoder it's talking about, this option means:- quality for oggenc: (
1-10), highest =10 - compression level for Flac: (
0-8), lowest (but fastest) compression =0 - quality for Lame in vbr mode: (
0-9), best quality =0 - 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
- quality for oggenc: (
Default: 5,3,5,100,0,5. Wavpack and ffmpeg have no quality switch β use encoder options instead, periodt. The value off turns the quality option off, if it's supported by the encoder. Encoders that need a quality or compression level will fall back to the default value if off is used. 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. slay. π
-v,--vbrmodemode β this one defines variable-bitrate, and it's only used with Lame π the mode is eitherneworold, go read the Lame manpage for the deets. If vbr-mode is used, the Lame-option quality gets changed to-Vinstead of-q. Default: not set.-b,--bitraterate β encodemp3at this bitrate for Lame πΆ if option--vbrmodeis used, the bitrate equals the-boption, so you might wanna set itoff; or set itoffif all options are being passed to--lameopt. Default:128.-B,--maxraterate β when you're using--vbrmode, this maxrate (bitrate) for Lame gets translated to the-Boption in Lame or the-Moption in Oggenc π default:0.-S,--presetmode β use the preset switch when encoding with Lame π combined with option--vbrmode new, thepreset fastsetting gets used. Use--vbrmode oldto not use fast VBR. Mode is one of:insane(320 kbps @ CBR),extreme(256 kbps),standard(192 kbps) ormedium(160 kbps) β or literally any other valid bitrate. Default:off.-W,--chars[list] β exclude special characters in file names and path π§ the argument is optional. It accepts a list of any characters. You might escape the characters or use double quotes to pass them on the command line. It also accepts the presetsNTFS,HFSoroff. If no argument is stated, or the wordNTFSis passed, these characters get erased:|\:*?$β plus blanks and periods at the beginning and end of file names and directories. When using the wordHFS, only colons get purged, plus blanks and periods at the beginning of file names and directories. Pass the wordoffas the argument to set the option off again. Default:off.--commentcomment β specify a comment for the comment-tag for Lame, Faac, Musepack and Wavpack, or the description-tag for Oggenc and Flac πΈ the special commentcddbidordiscidwill place the cddbid (used by freedb) or the discid (used for MusicBrainz) into the comment. See also option--mp3tags,--flactagsor--oggtagsfor more special tags to be added. Default: not set.-g,--genregenre β specify (and override CDDB) genre π it must be a valid ID3-genre if you're using Lame, and it can (but honestly shouldn't) be anything if you're using other encoders. Default: not set.-y,--yearyear β specify (and override CDDB) the year of the year-tag for Lame, Faac, Musepack and Wavpack, or the date-tag for Oggenc and Flac β default: not set.--coverartnumber β a number, or a comma separated list of numbers (if several encoders are used), matching up with option--coder, with values0(no) or1(yes) π default0.--coverpathpath β path to the coverart picture to be included in the metadata of the sound files πΌοΈ the picture must be present, or acquired using e.g. the--precmdoption to call a specific script that handles the finding-coverart process, or option--coverorgin combination with option--mb(see below). This option is mandatory in case--coverartis used. The full path might be given with variables according to the--dirtemplateand using the same quoting rules.
Absolutely no checks about existence of path will happen, and a missing path will not be created β so a wrong argument might lead to failed downloads when using --coverorg. π
No checks about existence of coverart will be done if --interaction is set off. In case of re-encoding, the variable $inputdir can be stated. Default: not set.
--coverorgnumber β retrieve coverart from coverartarchive.org using the MusicBrainz release ID (not to be confused with the discid, which is used to find the release on MusicBrainz) π¦ furthermore, as an experimental feature, discogs.com will be used in case a discogs release ID was listed on the MusicBrainz release page. But this might be out of order any time, as discogs changes page layout frequently π if a cover is downloaded from coverartarchive.org, all other files will get suffixes in their file names so nothing gets overwritten. Note that the--coverpathmust be set to save the coverart, and it must reflect an existing path. Possible values0(no) or1(yes), default0.--coversizeformat β resize the provided coverart picture to a fixed value according to ImageMagicks convert command π either values in the formatXXXxYYYor only a width to keep aspect ratio. The original coverart file will be renamed. Possible values: any valid format, default: not set.--copycoverpath β full path to any kind of file (e.g. the coverart picture) to be copied into all directories containing encoded files πΈ the argument might consist of variables according to the--dirtemplateand using the same quoting rules. In case of re-encoding, the variable$inputdircan be stated. Default: not set.--flactagsFRAME=tag β additional tags for flac that the encoder didn't pass along, so special tags get evaluated similar to mp3tags β¨ use option--flacopt "--tag=FRAME=foo"for additional hard coded tags instead. When using MusicBrainz, additional metadata provided can be added as tags using the schemeFRAME=frame. Supported areASIN,BARCODE,CATALOGNUMBER(using tagcatalog),CDDID,DGID,DISCIDakaMUSICBRAINZ_DISCID(using tagdiscid) andMBREIDakaMUSICBRAINZ_ALBUMID(using tagmbreid) β with the tag in lower case. E.g. adding an asin:
--flactags=ASIN=asin
will evaluate the lower case asin if the variable is defined. Nothing is added if the metadata isn't available. The option is an array β for each additional frame/tag to be added, state the option once. Default: not set.
--mp3tagsFRAME=[DESCRIPTION]tag β additional tags to be added to the mp3 file(s) if the encoder doesn't provide options for the FRAME, or if some unofficial FRAMEs shall be used (e.g. a compilation tag set to1:TCMP=1) π this option only supports basic (id3v2.4) frames in the formatFRAME=tag(e.g.WCOP=http://id3.org/id3v2.4.0-frames) orFRAME=[DESCRIPTION]tag(e.g. a user defined text annotation for the description ASIN:TXXX=[ASIN]B003ZYEQ30).
Note that the braces must be stated with some content β they do not stand for optional content. π
More than one --mp3tags statement can be used if several tags shall be added. Do not add a COMM frame here β this tag is supported by (older versions of) Lame and the corresponding option exists in Ripit. Same goes for the APIC frame, which has its own option in Ripit. Newer versions of Lame may support these tags using Lame option --tv, to be passed with Ripits option --lameopt.
No checks on encoding will happen on content stated here β in case option --utftag is switched off, the operator has to ensure encoding of the tags π¬ special tags will be evaluated in case the metadata is provided, e.g. when using MB and the TXXX tag. Supported are ASIN, CATALOG, BARCODE, CDDBID, DGID, DISCID aka "MusicBrainz Disc Id" and MBREID aka "MusicBrainz Album Id" with the tag in lower case. E.g.
--mp3tags TXXX=[ASIN]asin
will replace asin with the value if the variable is defined. Default: not set.
--oggtagsFRAME=tag β additional tags for ogg files, similar to--flactagsπ¦ default: not set.--vatagnumber β analyze track names for"various artists"style and split the metadata in case one of the delimiters (colon, hyphen, slash or parenthesis) is found π use unpair numbers for the scheme"artist ? tracktitle"and pair numbers in the opposite case. The artist will be compared to the argument of option--vastring(see below).- If the artist must be like
--vastringand each track has a delimiter, use1(2) - if the artist must be like
--vastringwhile only some tracks contain the delimiter, use3(4) - if no restrictions apply for the artist but all track names must have a delimiter, use
5(6) - and finally, if only a few tracks contain a delimiter to be used as splitting point, set
--vatagto7(8)
- If the artist must be like
Default: not set.
--vastringstring β this is the regex that tells Ripit what counts as a "various artists" release. Like, the vibe check for compilations. For exampleVarios|VA. Default:\bVA\b|Variou*s|Various\sArtists|Soundtrack|OST-D,--dirtemplate'"foo parameters"'β okay bestie, this is the one where the quoting gets β¨dramaticβ¨. You use single AND double quotes together to pass the template parameters, no cap. Allowed in there: any legal characters, slashes for multi-level directories, and these parameters:$album$artist$iletter$genre$quality$suffix$trackname$tracknum$year$trackno
Example:
'"$suffix $quality/my_snd_dir/$iletter/$artist/$year β $album"'
Let me break down the spicy ones for you: $iletter is literally just the initial letter of the artist name. $trackno is the total number of tracks of the release β super helpful when you gotta tell apart different releases that have the exact same name, because of course that happens. $quality might be needed if you want to encode the same format at different qualities in the same run. Heads up tho: $quality reflects the encoder options, not the arguments of option --quality, which might be set to "off".
Also, you can state different dirtemplates! The option is an array, so you can use several different dirtemplates in the same order as the encoders. If you state fewer dirtemplates than encoders, the last dirtemplate gets used for the subsequent encoders and the wav-directory, see EXAMPLES below β but it must be defined for all formats including wav in case rip (Morituri) is used. Default: '"$artist - $album"'.
-T,--tracktemplate'"foo parameters"'β same deal as above π. But plot twist: the tracktemplate is not an array, only one can be stated. And it gives you two bonus variables that are helpful when VA-style is detected:$trackartist$tracktitle
Note: trackartist will be filled with the value of artist in case no track artist has been found, to respect the templates settings, and tracktitle will hold the pure trackname. Additional album-artist tags will be written, e.g. TPE2 tag for Lame, and the artist field will contain the track artist tag. Default: '"$tracknum $trackname"'.
--trackoffsetnumber β adds an offset to the$tracknumvariable (see above π). Lowkey useful for joining multi disc releases into one directory (and to switch option--overwriteto"y"). Default:0.--addtrackoffsetβ when you're using MusicBrainz, this checks for multi disc releases and automatically adds a calculated--trackoffsetto the track counter. Ripit will try to detect already ripped multi disc releases and temporarily switch option--overwriteto"y"in case the first track of a multi disc release is not present in an existing directory corresponding to the dirtemplate. Negate it to switch the option off again. Default: not set.--discnonumber β sets a counter for the disc when you're using a multi disc release. This option accepts any integer; when using MB and--discnois set to1, the discnumber will be set to the discnumber according to the presented data (read as: switch option on). Using a number> 1will force this number and will not be altered if MB gives a different disc number. Default:0.--sshlistlist β a comma separated list of remote machines where Ripit should encode. π₯οΈβ¨ The output path must be the same for all machines. Only specify the login (login@machine) if it's not the same for the remote machine. Else just state the machine names. See EXAMPLES for more info. 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 theWebService::MusicBrainzmodule instead of freedb (see below). You need the discid calculation perl module or command to be installed and in the path. Negate to switch the option off again. A non interactive freedb look-up will be done to retrieve a genre. Default: off.--mbrelsnumber β checks each track for additional relationships, only vocal and work relationships are handled. Possible values0(no) or1(yes); default:0.--mbnamelogin β gives your MusicBrainz login name so Ripit can submit ISRCs to the database. Saved in plain when using a config. Default: not set.--mbpasspassword β gives your MusicBrainz password so Ripit can submit ISRCs to the database. Saved in plain when using a config. Default: not set.
ngl bestie, "saved in plain" means plaintext, so likeβ¦ know that before you type it in π
--isrcnumber β enables ISRC detection with number =1(usingicedax) and submission to MusicBrainz. Note that option--mbmust be switched on. Possible values0(no) or1(yes); default:0.--cdtextnumer β checks for CD text if no DB entry found. Possible values0(no) or1(yes); default0; default:0.-C,--cddbserverserver β the CDDB server, eitherfreedb.org,freedb2.orgormusicbrainz.org. Defaultfreedb.org. Note: the full address is"mirror".freedb.org, i. e. the default isfreedb.freedb.org. Exception:freedb2.organdmusicbrainz.orghave no mirrors, their full addresses are:freedb2.organdfreedb.musicbrainz.orgon port80(see transfer mode).-t,--transfermode β transfer mode,cddborhttp, will set default port to8880or80(for http). Default:cddb. Note: usehttpmode with CDDB serversfreedb2.orgormusicbrainz.org.-m,--mirrormirror β choose"freedb"or one of the possible freedb mirrors. Default:freedb. For more information check the web pagewww.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,--protocollevel β CDDB protocol level for CDDB query. Level =6supports UTF-8 and level =5does not. Use level =5to suppress UTF-8. Cf. option--utftagbelow. Default:6.-P,--proxyaddress β the http proxy to use when accessing the cddb server. The CDDB protocol must behttp. Default: not set.-n,--nicenumber β sets the niceness of the encoding process. Default:0.-a,--archiveβ reads and/or saves CDDB files in$HOME/.cddb/"category"directory using the xmcd format, where the"category"is one of the 11 CDDB categories, or in case MusicBrainz is used, an additional category"musicbrainz"will be used. Default: off.-e,--ejectβ ejects the CD when finished, if hardware supports it. Use--noejectto switch it off. Default: off.--ejectcmdcommand β the command to be used for ejection or loading of the CD tray. Should be specified within FreeBSD even if option--ejectis not used, to enable Ripit to load the CD tray. You don't need to mention the wordscloseorejector options like-t, Ripit does it π . Default:eject.--ejectoptoptions β options for the ejection command to be used for ejection or loading of the 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--nosubmissionif the computer is offline and the created filecddb.tocshall be saved in the home directory instead of being submitted. With option--archiveit will also be saved in the$HOME/.cddbdirectory. The purpose of this option is also to permit the user to edit the CDDB data for their own track names & tags and not overwrite the original CDDB entry. Default: on.-M,--mailaddress β your return email address, needed for submitting an entry tofreedb.org. Default: not set.--mailoptoptions β additional options, added to thesendmailcommand. The reply-to address will be used with option-ras defined above. Default:-t-A,--booknumber β creates an audiobook file, i. e. merges all tracks into one single file, and option--ghostwill be switched off. π§ If encoderfaacis used, the file suffix will bem4binstead ofm4aand a chapter file will be written for chapter marks. The installed version offaacmust support the-woption to write tags. Note that options--wavand--cdtocshould also be switched off. Possible values0(off) or1(on); default: off.--cdcuenumber β number n =1or2to create cue sheets to burn the wavs with CD-Text. The cue sheets will be copied to the other file formats. Number1will switch option--ghoston to eliminate chunks of silence. Number2is experimental but does not switch option--ghoston, and may be used if number1fails. Default: off.--cdtocnumber β number n =1to create a toc file to burn the wavs with CD-Text usingcdrdaoorcdrecord. Default: off.--infnumber β number n =1to create inf files to burn the wavs with CD-Text usingwodimorcdrecord. Default: off.-p,--playlistnumber β create the m3u playlist file, or use--playlist 0. For file names without full path use--playlist 2. Default is full path for file names. Default1- on.-i,--interactionβ specify--nointeractionif ripit shall take the first entry found and rip without any questioning. Default: on.--lcdβ uselcdprocto display status. Default: not set.--lcdhostβ specify the lcdproc host. Default:localhost.--lcdportβ specify the lcdport. Default:13666.--infologfile β log operations (system calls, file/directory creation) to the file given with full path. Default: not set.-l,--lowercasenumber β lowercase file names and or directories (fromtracktemplateanddirtemplate): number n =0, off;1, on for file names and directories;2, only for file names;3, only for directories. Default: off.-u,--underscoreβ use underscores (_) instead of spaces in file names. Default: off.--uppercasefirstβ uppercase first letter of each word in file names and tags. Use this option if the CDDB entry is uppercase only. Default: off.-U,--utftagβ keeps your Lame-tags in UTF-8, or decodes them (the tags only, not the file names, bestie) from UTF-8 to ISO8859-1. Only applies to mp3 (Lame). Lowkey a lifesaver for tags with special characters and if your mp3-player is living in the past and doesn't support Unicode π. Using Musepack? You might wanna pass the Musepack option--unicodeto the optionmuseopt. Heads up though: combining this with--threads(and/or--sshlist) may lead to issues and must be regarded as experimental β it's giving risky. Default: off.--ripβ rip the CD! Fr fr use it as--noripwhen wav (or flac) files are already present. Previously it was just a debugging thing, but now it's lowkey useful to re-encode existing wav or flac files in a given--inputdir(peep below). Option--inputdiris mandatory in case--noripis used. Default: not set. Note: this option can not be defined in the config file. π«--inputdirdirectory β full path to the directory with the wav or flac files you wanna re-encode using option--norip. Also go look at option--cdidto get some awareness on the unexpected behaviour situation. Default: not set. Note: this option can not be defined in the config file.--cdidid β give afreedb.orgCDDBID or a musicbrainz discid in case you want a lookup done when re-encoding wav or flac files, and existing track names (of wavs) or tags (in flac files) should get updated when using--norip. If you don't state it, ripit will try to detect an ID in playlist, toc or log files or cue sheets to retrieve local or online metadata. Which meansβ¦ a look-up may happen even if this option is not stated π. That can lead to some unexpected effects, e.g. differing directory or track names from those stated in option--inputdir, new tracknumbers in case ghost songs are present, merged multi disc releases and so on. Default: not set. Note: this option can not be defined in the config file.--encodeβ do encode the wavs. If you only want the wav-files 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 tonormalize. Possible values:-a -nndB: Normalize to-nndB, 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.
-h,--helpβ print this and exit. π«Ά-V,--versionβ print version and exit.-x,--verbosenumber β run silent (do not output comments, status etc.) (number n =0), with minimal output (n =1), normal without encoder messages (n =2), normal (n =3), verbose (n =4), extremely verbose (n =5). Default3.--configβ read parameters from config file, or specify--noconfigto prevent reading it. A local config file in$HOME/.ripit/will have higher priority, and only if the local file does not exist, ripit will try to read/etc/ripit/config. Default: on.--confnameβ read parameters from a specific configuration file if special options are needed. This might be useful if the operator wants different settings for discs containing music than e.g. audio books. Default:config.--confdirβ read parameters from a config file in a specific directory, default is$HOME/.ripit/.--saveβ add parameters passed on command line to an existing config file. This does not overwrite other existing settings. Options of an existing config file will be adopted and the old file saved asconfig.old, no matter if a file namedconfig.oldalready exists. Default: off.--savenewβ save all parameters passed on command line to a new config file, backup an existing file toconfig.old, no matter if a file namedconfig.oldalready exists. Creates a default config file if no options are passed on command line. Default: off.--loopvalue β after ejection of the previous CD, continue ripping and encoding as soon as a new CD has been fed. This option forces ejection (--eject). The value is either0for normal use (single run) or1for (standard) looping. Experimental value2might be used to force immediate restart of the ripping process even if the encoder did not yet complete. 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 explicitly. The config file will be read out on each run just before ejection of the disc. In case one alters the config file after ejection, close the tray with the disc already done for re-reading the config and re-ejection of the disc. Therefore it might be useful to pass as few options as possible on the CL when using option--loop, because options passed on the CL can of course not be altered with the config file during a loop. Default: off.--quitnodbvalue β give up the CD if no CDDB entry found. Useful if option--loopor--nointeractionare on. Default behaviour is to let the 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. Default: off.-O,--overwriteargument β default behaviour of Ripit is not to overwrite existing directories, a suffix will be added if the 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 chosen, the disc will be ejected even if option--ejecthas not been switched on. Default: off (n).--dpermissionnumber β change the directory permission to number. Default:0755.--fpermissionnumber β change the file permission to number. Default:0644.--md5sumβ create a MD5-sum file for each type of sound files.--threadsnumber β comma separated list of numbers giving the maximum of allowed encoders to run at the same time. In conjunction with optionsshlist, the number for the local machine is mandatory and must be stated first. Default:1.-X,--execmdcommand β state a command to be executed when ripit finished. The same variables as in the dirtemplate can be stated. When using MusicBrainz one can try to use$cd{asin}to pass the ASIN to the command to be executed. Make sure to escape the command if needed. Default: not set.--precmdcommand β state a command to be executed before ripping started. The same variables as in the dirtemplate can be stated. When using MusicBrainz one can try e.g. to use$cd{asin}to pass the ASIN to the command to be executed, which might be useful when executing a script to retrieve coverart from a site. Make sure to escape the command if needed. Default: not set. π
β¨ EXAMPLES β¨
okay bestie this is the part where it all comes together, like the montage scene in a movie but for ripping CDs π
Wanna tell rippit which CD drive to use? say less:
ripit --device /dev/sr1
Wanna pick where the files land? iconic, do this:
ripit --outputdir /foo/paths/
Only want some tracks, like a curated playlist moment? flex those track numbers:
ripit 1,3-6,8-11
Several encoders, one run? yes queen, multitask:
ripit --coder 1,0,2 --quality 3,5,6
And if you're really going for it with a whole squad of encoders, --threads is your bestie on a multicore CPU (this example omits any quality settings, iykyk):
ripit --coder 0,1,2,4 --threads 4
Lame with variable bitrate (VBR)? okay so:
ripit --vbrmode new --bitrate 0
Heads up bestie: you should reset--bitrateto0(zero) if you don't want the-boption of Lame. And depending on the VBR mode in Lame, use"new"or"old". no cap.
It's recommended to use the preset switches for Lame (go read the Lame man-page, bestie), and to specify fast encoding with --vbrmode new (use --vbrmode old to switch off the fast encoding):
ripit --preset extreme --vbrmode new
Wanna pass options straight to your encoder? use that encoder's own option switch. e.g. to use the managed mode with oggenc:
ripit -c 1 --oggencopt "--managed -b 192 -M 224 -m 96" --quality
"off"
Hunting for ghost songs and trimming very long lead-in/out of each track? spooky szn:
ripit --ghost --prepend 2.0 --extend 2.0
Same format, 2 qualities β lowkey for your portable, highkey for home? literally the dream setup:
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? main character energy, one folder to rule them all:
ripit --dirtemplate '"/"' --outputdir="/media/sound" \
--resume
Normalize the wave-files before encoding? chef's kiss:
ripit --normalize
Normalize to -18dB using "mix mode" (go check the normalize documentation, bestie):
ripit --normalize --normopt "-m -a -18dB"
Add coverart pulled from coverartarchive to the encoded files? so cute, obsessed π
Quick note: instead of a full path like'"/home/me/$artist - $album/cover.jpg"', the evaluated internal variable$wavdiris used here to make sure the cover goes to the right place in case Ripit alters the$wavdirwith some suffix to prevent overwriting. slay.
ripit --noconfig -d /dev/cdrom -r 1 -c 2 --mb \
--coverart 1 --coverorg 1 --coverpath
'"/$wavdir/cover.jpg"'
Update a config file in ~/home/.ripit/ with options? Like: use Lame and Oggenc, don't create an m3u file, archive the CDDB entry files in ~/.cddb/"category"/, and eject the CD when done:
ripit --coder 0,1 --playlist 0 --archive --eject --save
Do the whole job with zero interaction? antisocial queen behavior, respect:
ripit --nointeraction
Re-encode wav or flac files in inputdir using a special configuration file with settings for re-encoding (e.g. switched overwrite mode on and use MusicBrainz so track-offsets can be detected):
ripit --confname config_4.0.0_reenc --inputdir "/home/me/sound/2c
- We shall see/flac" --norip
Rip only the first 30 seconds of each track? perfect for testing, no commitment:
ripit --span 0-30
Wanna use a network for encoding? Make sure the output paths are equal on all machines, bestie:
ripit --sshlist sun,saturn,earth
where sun, saturn and earth are remote machines you can login to 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 you might enter e.g. /tmp/ as output directory. And if the file-system isn't mounted on each remote machine, you can try copying the wavs over with the --scp option:
ripit --sshlist sun,saturn,earth --scp
π FILES π
User config file (/etc/ripit/config will only be used if there is no $HOME/.ripit/config):
$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. π (she's honest, we love her for it)
π SEE ALSO π
cdparanoia(1), lame(1), oggenc(1), flac(1), normalize(1), cdda2wav(1), ffmpeg(1)
π AUTHORS π
Ripit is maintained by Felix Suwald β please send bugs, wishes, comments to ripit_[at]_suwald_[dot]_com with a concise subject, bestie, concise, I'm begging π
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 the maintainer. π
and that's the whole page, bestie!! π¦β¨
this legendary manual is for ripit and it's dated May 8th, 2014 β and yes, it's the RIPIT(1) page. go forth and rip responsibly, mwah ππ
π¦ where this page comes from
- debian bookworm: ripit 4.0.0~rc20161009-1 Β· GPL-2.0-only
- debian trixie: ripit 4.0.0~rc20161009-1 Β· GPL-2.0-only
- ubuntu jammy: ripit 4.0.0~rc20161009-1 Β· GPL-2.0-only
- ubuntu noble: ripit 4.0.0~rc20161009-1 Β· GPL-2.0-only
- ubuntu resolute: ripit 4.0.0~rc20161009-1build1 Β· GPL-2.0-only
- ubuntu stonking: ripit 4.0.0~rc20161009-1build1 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms