Optical Ripping Automation Computer

Here’s a project I’ve been trying to start for a while now, and kept being hit with hackspace-syndrome whereby I turn up to work on the project, only to find I’ve left a key part of it at home or something doesn’t work :slight_smile:

Problem: I’ve got a bunch of optical media, CDs, DVDs, and I’d like for them to all be available to me without needing the media - so I can actually use the media I own rather than relying on streaming services like Spotify. I don’t have any working CD/DVD drives that can be plugged into a computer easily. I suspect it’s not just me that has this problem.

My solution: Build a machine which takes in optical media and a USB drive, allows you to select what format you’d like the media ripped in, and then when pressing GO it will rip the content to your USB drive. When it’s done, it spits out the optical media and you can either put another one in, or be done. Ideally it’d be standalone so that a) I can leave it going whilst I get on with other things and b) can be set up as an appliance so that when I’m done converting my own content, other people can use it to convert theirs too.

Ideally, it should have the option of ripping the content lossless, or compressed. It should also retain the metadata (for CDs do a lookup from musicbrainz on the ISRC, for DVDs… not sure!).

The build: I’m hoping I can use a Pi Zero as the brains, a Pimoroni Display-o-tron HAT as the UI, and a slot loading DVD drive, hooked up to a SATA to USB enclosure, for the drive. Also have a powered USB hub for dealing with USB drives.

Whilst the Pi Zero might not be any good for transcoding (especially video), perhaps I can ship it out to a cloud service for doing that. Or build my own with ffmpeg and a VPS somewhere.

Also, if the whole ripping thing turns out to be not as useful as I’d like, it could easily be repurposed with different code to do various other things - for example burning backups to DVDs automatically on a schedule. Or something like that.

Ideally I want to build a nice lasercut acrylic enclosure (maybe with light gathering or transparent acrylic, oooh very Blake 7 … just realised I can backronym the name of the project to be ORAC! that’s exciting) to hold it all together. (I’ll need to do the laser cutting induction for that first, of course).

iTunes is pretty good at automatically ripping, it can be setup to rip any CD inserted automatically, look up album art, and track names, and eject the CD when it’s complete.

With this in mind all you need to do is have a device read when the tray is ejected, pickup the CD and put it on a spindle, and load the next one, then nudge the tray, or actuate the eject button.

What parts if any do you need help with naxxfish? This is wholly achievable in a number of ways, if you want something open source / pi based some bash scripting will go a long way. Github might all ready hold a solution?

If your transcoding something more powerful might be better though you could see what a raspberry pi 3 could do over night, set it before bed, pick it up in the morning type thing? sending of to a vps seems a little sub optimal to me, but could work.

How hard is it to mesh rasp-pi1’s ? We must have 30 of them in the space :wink:

Courty

1 Like

!!! RPi beowulf cluster! We have a tonne of switches, it’d be super fun!

2 Likes

I know when I encode to h264/mp4 with ffmpeg it multithreads it, so theoretically that could be done across multiple CPUS??

Whats beauwolf cluster specifically?

1 Like

Ooh clusters :slight_smile:

For an audio CD, distributed processes would work well - each time you rip a track, you can send it over to a machine to transcode it. Although I suspect the bottleneck will be how quick I can extract the audio from the CD rather than the encoding. Don’t think there’s any easy way of subdividing labour any more than that. For video, if you ripped the audio/video separately, you could transcode the two separately and re-mux them at the end. I’ve written some job control things to do this previously, and it is a fair bit quicker if you can dedicate separate CPUs to the two parts.

A Pi cluster would be entertaining regardless of this particular project, mind you - maybe we should make one that can be dismantled easily (in case we want to use the Pi’s for something else). Some kind of backplane that you can “slot” Pi’s into, and a SD card that’s pre-configured to join the cluster so you can swap it out when you want to use the Pi on it’s own…

As for help - I think I’m mostly OK with most parts. I’d appreciate getting laser inducted so I can cut and build the enclosure - but that’ll come in time I’m sure.

2 Likes

I’ll run a laser induction next week. Stand by for a post when I have a few more mins to spare.

1 Like

Awesome, thanks! I’m watching the inductions forum so will make sure I sign up. As mentioned elsewhere, I’m happy to help with running inductions once you’re happy I’m competent to do so.

Made this at work, not actually a cluster but looks cool :slight_smile: I have the outline for cutting if you want, was pretty much carbon copied from a design I bought online at modmypi

2 Likes