A couple of months ago I began digitizing my DVD collection and I quickly discovered one thing; it’s unbelievably time consuming! I’m a huge proponent of automation in general so, wherever possible, I used the concepts I’ve used to automate other things in my life to save me some time while ripping DVD’s. I actually rip all of my DVD’s twice. First, I use RipIt to create a bit-for-bit copy of the original disc. Next, I use handbrake to isolate and rip the individual title(s) from the disc. Those individual titles are then filed into the appropriate folders and ultimately indexed by Plex. One part of this process which I realized could be automated fairly easily is the conversion of the dvdmedia files (created by RipIt) to a standard ISO file.
Dvdmedia files are great if you only ever want to use them with the built-in DVD player app on MacOS, but I wanted my full-disc archives to be a little more flexible so I was manually converting every DVD I processed with RipIt to an ISO file with the following one-liner:
hdiutil makehybrid -udf -udf-volume-name -o /Users/Josh/Desktop/.iso /Users/Josh/Movies/.dvdmedia
I knew there had to be a better way.
My solution for automatically converting dvdmedia files to ISO files consists of the following shell script:
# Switch to directory containing dvdmedia files
# Set filename
DISC_NAME=$(ls | cut -d . -f 1)
# Convert dvdmedia file to ISO image
hdiutil makehybrid -udf -udf-volume-name $DISC_NAME -o /Users/Josh/Desktop/$DISC_NAME.iso /Users/Josh/Movies/$DISC_NAME.dvdmedia
# Delete dvdmedia file
rm -rf /Users/Josh/Movies/$DISC_NAME.dvdmedia
which is paired with the following Hazel rule that executes it any time a file with a .dvdmedia extension appears in RipIt’s destination directory:
With this solution in place, all I have to do is insert a DVD and click Rip. I’ve also automated the tedious work of manually renaming episodes of TV shows ripped from series box-sets, but that’s a topic for another post. Have you automated any tedious or repetitive processes in your computing workflow? Share them in the comments below.