Wednesday, April 02, 2008

One Click DVD Rip to HTPC

Want a super-easy way of archiving your DVDs to your hard driver or even to your Home Theater PC?  I'll share with you my method of ripping the movie from the DVD and putting it into a folder for viewing on your HTPC.

I needed a one-click script that would rip a DVD to my HTPC with the click of a button.  Add to that, I wanted the rip to end up in a single mpg file with just the movie, but including any subtitles and audio tracks - all with no transcoding to maintain quality and still reduce the size a little (size reduction in this script is only achieved by removing the extra features.)

I started with a script I picked up from a friend on the Snapstream forums pwlong.  With that script I modified it to serve my purposes - no transcoding, a single mpg file and one-click action from the HTPC 10ft interface?  Here's how to set it up:

  1. This script uses a program called DVD Decrypter which isn't updated any longer, but is still available and works with most DVDs.  If you don't already have it you might be able to find it by searching for "dvddecrypter fileforum"                                         11
  2. Download the script zip file from here, and unzip the rip2one.cmd file.
  3. Install the script into your preferred directory on your HTPC.
  4. Open the script with notepad or another editor
  5. Go to the User-defined variables and change the "set dvddrive=" to your dvd drive21
  6. Change your drivespeed to the dvd read speed you prefer.  Slower will be quieter.  Also update the location of your movies by putting the path in "set dvdlibrary="22
  7. Finally, change the logfile location to the location of your choice.  The default is "c:\temp\rip2one.log"
  8. Save the script - I have it named rip2one.cmd but you could rename it if you want to.
  9. We'll eventually add it to our HTPC, but for now its time to try it out.  Put a dvd in your drive and run the rip2one.cmd script.  Once the dvd is extracted to your hard drive the command-line window will close.  Check to see that the movie was placed in a folder by the movies name and that the folder now has a single mpg file ready to be played.

Now that you know the script is working, you can either create a shortcut for it and just run it as a quick-and-dirty, standalone way of backing up your DVD's or you could integrate the script into your favorite HTPC program.  I'll show you how to do this in SageTV, but you could easily add this script as an external program to most HTPC software programs or even use it as a standalone.  For a simple script to

use with Snapstream's Beyond Media check out pwlong's how-to



  1. You either need to have SageMC installed or Nielms Dynamic Menu Plugin.  SageMC has that plugin built-in.
  2. Right-click with your mouse or press the escape key on your keyboard to open up the Dynamic Menu Options menu.  Select Main Menu Options   1
  3. Select New External Program from the menu2
  4. Type in the path to your command line script "rip2one.cmd" or whatever you renamed it to7
  5. On the next window where it asks for you to insert arguments, just press "ok"4
  6. On the next window, select "do nothing"5
  7. Now type in the name you want used for the plugin - this is what you'll see on the menu item - I named mine "Extract DVD"                                   6
  8. Now Save your menu file.                                         8
  9. You now have your SageTV DVD Extracting Plugin.23

Note:  When you run the script it will do the following:

  • DVD Decrypter will pop up and begin working
  • A command line window will pop up and provide some info about the processes running
  • Once the rip is complete these two windows will close again.

Because of the way this happens, focus is taken from the HTPC app when the two windows first open so you'll have to regain focus with your remote.  I have ways of avoiding this, but since this particular script needs to do cleanup after dvddecrypter is complete, I couldn't run it minimized.  If anyone has a solution for this let me know.

My plans (hopes) for this script is to have SageTV pause to show me the DVD label on the screen and give me the chance to modify the name or select okay to use the DVD label to use as the resulting filename.  I would imagine this is possible, but my programming skills are slim to none.  Instead, I'm just learning Sage Studio and maybe some day I'll get there :)

Disclaimer:  This tutorial (and script) is being shown for instructional purposes only.  Use at your own risk.  Only use this to back up your personal movie collection of DVDs you own.