Bulk CD Ripping

This page discusses how I repurposed a Kodak CD Kiosk tool into a bulk optical disc ripper. The reasoning for this is because I don't use services like Spotify. I own all my music, so it can never be taken away from me, and it is stored in the highest lossless quality (FLAC).

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.

Furthermore, one should never use services like Spotify because they are merely granting you a temporary license to transmit the music. When you have a CD, you own it, with the highest-possible quality and zero bogus license restrictions.

Making a Carriage

I found the robot on eBay, but it didn't come with any instructions. So, how would one go about actuating the servos? I did some sleuthing, and found some resources. First, somebody else was trying to sell this. 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.

The best archival format audio discs is BIN and CUE. 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 re-saves the metadata, and album art, to the FLAC files. The result are perfect, Free, albums that play back without gaps.

Ripping DVD

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

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. This is as-good as an archival copy can get, and can be played with VLC.

Go home