Bulk CD Ripping

To make a long story short: I like listening to full albums, I won't concede my privacy for a pithy "license" to listen, and I want lossless audio. Every few weekends, I'll go to a thrift store and pick up some (up to twenty?) new CDs. Sometimes, I get random assortments, and listen just to see if it could be something interesting. Therefore, my CD collection is large, and I have a large number of CDs to rip regularly. I accomplish this with a repurposed Kodak Photo CD Burner, and a script (GNU/Linux) on my workstation.

Making a Carriage

I found the robot on eBay, but obviously it didn't come with any instructions, say, "how would one go about actuating the servos?" I did some sleuthing, and found some resources. First, somebody else was trying to sell this, about a year after I found it. This gave me some information, like, "the unit I bought didn't come with the CD carriage." That page also linked to drivers, even though they were only for Windows. It also mentioned it was based on another company's product that I could get a little more information about, and higher-resolution images of the spindle. This way, I was able to deduce what shape it needed to have to load media.

Using my calipers and a copy of Autodesk Inventor 2006, I drafted a 3D model of the top spindle piece. My friend Ryan extrusion-printed it in a lovely blue hue. It's about 0.25" thick and solid-filled, so plenty sturdy. I measured the inside of a CD to be 15mm, so I found a dimension-matching acrylic rod on eBay. I was able to file it down to the appropriate shape and drill/tap some screws to hold it together. The end of the shaft articulates, one way to align it with the center and allow loading CDs, and another way to hold the CDs on, allowing only one to become pushed forwards, and drop to the tray below.

The software side of things was simple. It has a USB port in the back, and when plugged in appears as a USB hub with two devices: the CD-RW drive, and the serial controller. This forum post describes how to see debug information, and commands are simply single letters sent via serial.

Ripping Audio

Archival-quality audio needs two things: good audio data, and good metadata. The first is taken care of with cdparanoia which comes with dandy features. Did you know that audio CDs are closer to a record than a CD-ROM? It's true, and because of that, every time you play a CD you probably hear something slightly different, depending where a fleck of dust decided to land. cdparanoia can make multiple passes of a CD to get a near-guaranteed quality. In fact, I've tried to rip horribly scratched up discs and it still makes them sound great, even when some other players won't even try.

I use this script to make raw PCM files. Then, I use ffmpeg to re-encode them as FLACs. These are put in a directory, and I open that directory with Picard. It will usually recognize the album, but when it cannot I use the CD identifier to perform a search, which is found near the spindle hole. Picard saves the metadata, and album art, to the FLAC files. The result are perfect, Free, albums.

Ripping DVD

So long as one has libdvdcss installed, they can dd their drive directly to an .iso file and play it in VLC.

Ripping Bluray

I use MakeMKV to decrypt bluray disks and store it in a hierarchical directory. There is (the largest) a file that has the video, languages, and subtitles encoded into it.

Go home