rip-utils
ru experienced?
v0.2.1: June, 2002

Overview

rip-utils is a comprehensive commandline toolkit for ripping, encoding, tagging, organizing, compiling and otherwise managing audio archives. Each utility participates in a common framework that allows commodity tools (such as file browsers, multimedia players and streaming servers) to access your digital catalog simply and effectively.

screenshot: `ru rip`
Download v0.2.1 | Changelog

rip

A single command (tuned for optimal quality using cdparanoia and LAME) drives the ripping, encoding and tagging process from end to end:

% ru rip

No further intervention is necessary. Each track will be extracted from the compact disc, encoded, tagged (using album information obtained from a freedb server) and filed in a sensible location (~/mp3 by default).

list, tag, diff and submit

For those of us who want to exercise some editorial control, rip-utils also provides powerful support for retrieving, modifying, comparing and submitting album information using freedb servers. In addition to supporting standard editing features based on freedb naming conventions, rip-utils offers convenient methods for performing otherwise tedious tasks such as tagging multi-artist compilations or properly capitalizing album and track information; when maximum flexibility is required, regular expressions can be used. For a detailed example, see:

ru tag + cddb read misc 710ef109

organize and compile

Furthermore, rip-utils uses portable mechanisms to organize your entire audio collection. You can use rip-utils to create file system-based categories or to compile standard Internet playlists. Every file created or managed by rip-utils can be easily used – without modification – by most multimedia players, streaming servers (such as the one provided with the SliMP3 Player) and operating systems that might access your recordings using a shared file system (e.g., Samba). At the same time, every effort is made to ensure that each file name and path is legibly formatted so that humans are able glean as much from the file system as their software:

Hardfloor - The Best of Hardfloor%3A The Mixes.m3u
Hardfloor/The Best of Hardfloor%3A The Mixes/07. Depeche Mode - It's No Good (Hardfloor Remix).mp3
@ Categories/TB-303/Depeche Mode - It's No Good (Hardfloor Remix).mp3

Dependencies

rip-utils requires an Internet connection and depends on the following applications and components. The version numbers match my envrionment; other versions may work but have not been tested.

To Do

FAQ

What operating systems are supported?

rip-utils will work on platforms supported by both cdparanoia and LAME. Today that means GNU/Linux. When cdparanoia moves to the Paranoia IV codebase and adds support for a wider variety of operating systems, rip-utils should be able to do the same.

Are ogg vorbis files supported?

Not yet. Hopefully LAME's ogg encoding will be fixed soon; when that happens, rip-utils will support them as well. If the time frame for LAME to support oggs looks prohibitively long or non-existent, rip-utils will most likely integrate with a second, ogg-capable encoder.

How do I use an HTTP proxy to access a freedb server?

rip-utils obeys the standard http_proxy environment variable. For example, you can add the following lines to your ~/.bash_profile or equivalent startup file:

http_proxy=http://yourproxy.yourdomain:3128/
HTTP_PROXY="$http_proxy"
export http_proxy HTTP_PROXY

You may also need to modify:

~/.thinbox/rip-utils/rip-utilsrc

Make sure that FreeDBMode is “http” and that FreeDBPort is correct (usually “80”).

Why does `ru tag` expect me to append a “ /” to artist names?

There must be some way to distinguish between different types of data (between artist and title in this case). Traditionally, a commandline tool would make the distinction with a flag; `ru tag` could (but doesn't) allow you to specify the album artist as:

ru tag -0 -a Hardfloor

The “ /” is taken from the freedb convention of separating artist and title “by a ‘/’ with a single space on either side.” It is used when editing artist names because it is less common to change artist information than it is to change title information; accordingly, titles can be specified more simply:

ru tag -8 "Kangaroos and Bubbles (Armando's Darkside Remix)"

Furthermore, the syntax for editing artist and title fields simultaneously is a natural, efficient progression:

ru tag -0 "Hardfloor / The Best of Hardfloor: The Mixes"

Why is the compact disc in my drive reporting album information for another compact disc in my collection?

Unfortunately, the freedb discid algorithm does not generate unique IDs. Two or more albums can theortically (and in practice do) share one discid. When this happens, you can use:

ru ls -i

The -i option forces a rip-utils command to query the freedb server interactively, allowing you to manually select a freedb entry that matches the current compact disc; you only need to use this option once — rip-utils will remember your choice until you insert a new compact disc.

Why is `ru rip` so slow?

First, cdparanoia is notoriously, well, paranoid about the quality of its ripping. It does a lot of error detection and correction, and is therefore slower than some ripping applications. Second, the encoding process uses the --r3mix flag by default, which encodes with significantly better quality but poorer performance when compared with something like `lame -h`. If you want your CDs to be ripped, encoded and tagged faster and are willing to sacrifice some quality, you can modify the RipCommand and EncCommand fields in:

~/.thinbox/rip-utils/rip-utilsrc

Contact Information

Mikol Graves <|m|i|k|o|l|@|t|h|i|n|b|o|x|.|o|r|g|>

Usage: ru [options] <command> Where <command> is one of: list|ls : Display the compact disc table of contents. tag : Edit album and track information. diff : Compare local album info with freedb.org. rip : Rip and encode tracks from the compact disc. organize|org : Create and manage hierarchical track categories. compile|m3u : Generate custom playlists. submit : Submit edited album information to freedb.org. To see the usage for a selected command, use: ru <command> --help Options: -h --help : Print this message