Bulk CD Ripping
This page discusses how I repurposed a Kodak Kiosk CD Burner into a bulk optical disc ripper.
Every few weekends, I thrift for a few handfuls of new CDs. I get random assortments just to listen and find new tunes. To rip dozens of discs at a time, I use the Kodak KDK-1000-4 with a shell script on my workstation.
One should never use services like Spotify because they merely grant you a temporary license to transmit the music. When you have a CD, you own it with the highest-possible quality (lossless, FLAC) and zero bogus license restrictions. My music can never be taken away from me.
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.