ripoff
package below for credits. Hence the name
"ripoff".
Currently, Ripoff is only available through CVS. Use the links on the right.
Extraction is the process of extracting digital audio from a CD. Ripoff relies on an external program, such as cdparanoia or cdda2wav for extraction. The output of audio extraction is very large uncompressed audio files (about 10 MB per minute of audio, or around 600-700 MB for a full CD).
Encoding is the process of encoding digital audio to a compressed, usually lossy, format, such as MP3 or Ogg Vorbis. Ripoff relies on an external program such as lame or bladeenc for encoding.
To maximize throughput, it's best if extraction and encoding run simultaneously, so this is what Ripoff tries to do by default.
If you're an adventurous Linux/Unix user not afraid of checking code out of CVS and playing around, Ripoff might be useful for you -- especially if you're more interested in getting fiddly details (like filenames, ID3v2 tags, and the command-line arguments to your encoder of choice) "just right" than in a fancy GUI.
Ripoff is also very keen on maximizing throughput, ie. the number of CDs you can rip per hour. It has two basic modes of operation:
Ripoff's user interface is rather unusual. Like many Unix programs, it's controlled by command-line options and an editable configuration file; use
ripoff --helpto learn what command-line options are available.
And like most Unix programs, Ripoff runs in a text console. But unlike most other Unix programs, Ripoff opens up other consoles where its "slaves" -- namely, audio extraction and encoding programs -- do all the hard work.
The rationale for this unusual interface is that the audio extraction and encoding tools I've played with under Linux have fairly noisy console output: they print a running progress report to their terminal. This is interesting and useful information, and I didn't want to throw it away or compress it to a little progress bar in a GUI. But have you ever tried to run, say, cdparanoia and lame simultaneously in the same window? It isn't pretty. I toyed for a while with running Ripoff in a big window, and doing some curses and pseudo-tty magic to make it all work. But then I remembered: that's what windowing systems are for! So now Ripoff just fires off a couple of terminal emulators (xterm, rxvt, gnome-terminal, whatever you like) and runs its slaves inside of them. It's weird, it's wonky, and it takes up a lot of screen real estate. But it works!
If you're a Python programmer looking to write your own CD ripper
(and, after re-reading the above explanation, I'm not sure I blame
you...), then Ripoff is most likely useful to you as a library. The
ripoff
package includes the following modules:
ripoff.cdrom |
C extension for controlling a CD-ROM drive (useful for reading the TOC to compute disc IDs) (stolen from Ben Gertzfield) |
ripoff.disc_id |
code for computing CDDB and CDIndex disc IDs. CDDB code stolen from Ben Gertzfield, CDIndex code from Guido van Rossum. |
ripoff.disc_info |
provides the DiscInfo class, which abstracts the information provided by both CDDB and CDIndex. Based on code by Guido van Rossum. |
ripoff.cddb |
provides an implementation of the CDDB protocol (stolen from Guido van Rossum) and a local CDDB cache | ripoff.id3v1 |
ID3v1 (including v1.1) implementation (stolen from Ryan Finnie) |
ripoff.id3v2 |
partial ID3v2 implementation (based on Ryan Finnie's code) |