Automatically rip DVDs in Linux

Q I'm currently using DVD::Rip to back up a load of DVDs on to my server at home. This takes about 2 hours 20 minutes for each DVD, but it's the setup that I find annoying. Is there a way to run a script to do it automatically?

A DVD::Rip can do this in a roundabout way. First, go through the process for the first DVD until you're ready to hit Transcode. Then select Show Transcode Commands from the Debug menu. Right-click and choose Select All, then copy and paste this into your preferred text editor. The two sections you want are the Rip and Transcode commands. Each should be a single line, so adjust them if they wrap over several in your editor. Then add Eject as the third command, save this file as, say, ripdvd.sh and run it with:

sh ripdvd.sh

You may need to tweak this for each DVD, but it's quicker than trawling though the GUI. However, you may find AcidRip better suited to your needs. This has similar options to DVD::Rip, although it uses Mencoder to do the transcoding. Most importantly, it has an option to queue conversions and can export that queue as a shell script. Provided that you have the spare disk space, it's more efficient to rip each of the tracks you want direct to disk in plain DVD format (MPEG2) and then use AcidRip to batch convert all of those files. The easiest way to rip a single track from a DVD is with MPlayer, and:

mplayer dvd://1 -dumpstream -dumpfile firsttrack.mpg

will rip the first track of a DVD to a file. Repeat this for each track that you wish to transcode. Then select each track in turn in AcidRip, set the parameters - which shouldn't need changing after the first DVD - and press the Queue button. When you've added them, you can either press the Start button and leave the computer to process them overnight, or press Export to write the commands to a script at ~/acidrip.sh. Run this to process the files.

Back to the list