Console Decrypter (Auto DVD Ripper) utility - The Lazy Man's way


queeg

Recommended Posts

One of the things I like most about unRAID is streaming movies from it.  So now I want to make it easier to rip the DVD's so I can fill up more hard drives! :) 

I thought the easiest way would be to have a couple extra DVD drives and have a program watch them and when I put a DVD in it would just automatically rip the DVD and copy the resultiing ISO to my unRAID server. 

 

My initial attempt was to get Ubuntu + wine + DVDFab 7 running in a VMware client.  I got that setup and it would rip but wine was missing DirectX9 Dll's so the DVDFab GUI wouldn't minimize, restore or drag by mouse and half of it was outside the Ubuntu desktop. 

 

My second attempt was to get Win2k + DVDFab7 running and ripping in a VMware client.  That works.  So I wrote the ConsoleDecrypter.exe program that watches for DVD to appear and it rips and copies to my unRAID server.  It doesn't have to be installed on a VMware client, you can just use whatever Windows machine you have.  I tried it on 2 Win7 64bit and the Win2k VMware client. 

 

 

ConsoleDecrypter:  A utility that watches DVD drives and launches your ripping software when a DVD is inserted.

 

  • You configure which DVD drives to watch
     
  • use whatever ripping software you like (I use DVDFAb)
  • simple install - just copy files
  • very lightweight on system resources
  • sample batch files provided

 

 

Install instructions:

Download the ConsoleDecrypter.zip file and place it's contents on a folder.  I use C:\bin

Configure it by editing ConsoleDecrypter.exe.config to use your specific DVD drives.

Simply run the ConsoleDecrypter.exe and it opens a standard console program black box.

 

 

Notes:

 

I set up one batch file to do full disk rips for like TV series disc's where you want the menues.  A second batch file just rips the main movie.  Both of these batch files are included and work with DVDFab.

 

When running, the utility should notice an inserted DVD in 10 seconds or maybe less.  It will do an open/close of the DVD door when the configuration parameter AttemptReset = true.  When finished, it will open the DVD door and leave it open.  You can place the next disc in and close the door - it will continue with the one in progress and detect the next disc when finished.

 

If you want to use a different ripper then just modify the cmd files to do what you want.

The program is super lightweight on cpu usage and sleeps most of the time.  My machine is configured to enter suspended sleep and the utility had no problems.

 

To stop the program simply close the console program.  That's all there is to it.

 

VMware Tip - If you are going to run it in a VMware client, I simply use the VMware shared folder feature so that the client gets a drive letter mapped to a folder on the VMware host machine.  If your also using DVDFab then run it, click the green checkmark at the top and set it to use that shared folder for temp and output.

 

Zip file Contents:

  • ConsoleDecrypter.exe
  • ConsoleDecrypter.exe.config
  • ripToISO-FullMovie.cmd
  • ripToISO-MainMovie.cmd

 

 

 

 

 

If you want to use DVDFab as your decrypter/ripper then:

Install DVDFab 7 the latest DVDFab version.  The free part (the only part we need) DVD HD Decrypter will remain active after the trial ends.

Install a writer:  I use ImgBurn.  DVDFab will use it automatically to make the ISO.

 

 

At some point I might rebuild it as a Win service application.  But for now it's just a 32bit console program.

 

Edit: 09-21-2010  New version of ConsoleDecrypter.

 

Edit: 09-23-2010 ConsoleDecrypter.zip

New versions of the cmd files with quotes around the DVD9 parameter.

 

Edit: 10-29-2010 ConsoleDecryptorForDVDFab8+Handbrake.zip

New versions of the cmd files to call DVDFab8 instead of 7. 

NEW:  Also included a new cmd script that I use after ConsoleDecrypter is finished creating the ISO to compress the ISO to play on my Android phone.  The new cmd file is Handbrake_ISO_to_Phone.cmd and it takes the full path to the ISO as a parameter.  If you want it to compress the movies then edit the ripToISO-MainMovie.cmd file and remove the REM in front of the line that says Handbrake_ISO_to_Phone.cmd "c:\Movie\%2.iso".  I also add the Handbrake_ISO_to_Phone.cmd script to my SendTo menu so I can right click on any video ISO and easily compress it.  To use Handbrake_ISO_to_Phone.cmd you need to install Handbrake.

 

Edit: 11-27-2010 ConsoleDecryptorForDVDFab8+Handbrake.v2.zip

New versions of the cmd files to separate DVDFab from Imgburn.  Runs completely automatically now (it used to prompt for layer break).

You should make these changes manually in Imgburn, but you only need to do it once.

This version still uses DVDFab8.  If you don't want to use handbrake to make compressed version of movies for smart phone then remove the handbrake references in the MainMovie cmd file.

 

Edit: 05-19-2011 ConsoleDecryptorForDVDFab8 Qt+Handbrake.v2.zip

New version of DVDFab8 8.0.9.2 which installs in a different folder so...

New versions of the ripToISO-FullMovie.cmd, and ripToISO-MainMovie.cmd to reference the new folder.

Remember for fresh installs of Imgburn to read the note above from 11-27-2011.

 

Current version: ConsoleDecryptorForDVDFab8 Qt+Handbrake.v2.zip

ConsoleDecrypter.zip

ConsoleDecryptorForDVDFab8+Handbrake.zip

ConsoleDecryptorForDVDFab8+Handbrake.v2.zip

ConsoleDecryptorForDVDFab8_Qt+Handbrake.v2.zip

Link to comment

how cool it is just what I've been looking for but can you help me whit how I can use any DVD HD to make the backup any DVD have a free  trial it can work whit any DVD will it be perfect

hope som can help me :-) kepp up the good work :)

 

Sorry, I don't use AnyDVD.  Maybe someone reading can help.

Link to comment

Added feature:  Convert ripped movies to play on smart phones.

 

After the DVD movie is ripped to an iso file I also have it compressed to play on my phone.

Of course the phone ready movies are stored on my unRAID server.  

The ripToISO-MainMovie+Handbrake.zip attachment has all my script changes.

The phone I'm using is Samsung Moment running Android 2.1.

 

 

I installed Handbrake on my Win machine.  I made a simple cmd file to run Handbrake named RunHandbrake.cmd.

----------------------------------------------------

echo Starting Handbrake conversion on %1

time /t

 

"C:\Program Files (x86)\Handbrake\HandBrakeCLI.exe" -i c:\Movie\%1.iso -o c:\Movie\Handbrake\%1.mp4 --preset="iPhone & iPod Touch"

 

echo DVD d: Complete

copy "c:\Movie\Handbrake\%1.mp4" "M:\Phone\"

-----------------------------------------------------

 

I added the following 3 lines at the end of the ripToISO-MainMovie.cmd script.

 

rem

echo Running Handbrake

RunHandbrake.cmd %2

ripToISO-MainMovie+Handbrake.zip

Link to comment
  • 1 month later...

I've been running this with 1 drive for a while with no problems.

 

Yesterday I added a 2nd drive to my system and now I run into some problems.

 

 

I added the 2nd drive in the ConsoleDecrypter.exe.config but it only starts ripping on the 1st drive.

 

 

I just upgraded to DvdFab 8 and notices that all DVD's I've ripped has only DVD5 - do you know if something shoulæd be changed ?

Link to comment

I've been running this with 1 drive for a while with no problems.

 

Yesterday I added a 2nd drive to my system and now I run into some problems.

 

 

I added the 2nd drive in the ConsoleDecrypter.exe.config but it only starts ripping on the 1st drive.

 

 

I just upgraded to DvdFab 8 and notices that all DVD's I've ripped has only DVD5 - do you know if something shoulæd be changed ?

 

Post the config file.  It will only rip one DVD at a time but if you have 1 in each drive it will do one and then the next.  I'm still using DVDFab 7.  It's possible the command line parameters have changed for DVDFab 8.

Link to comment

Hmm - ok it only rips 1 DVD at any time. I would like it rip multiple DVD's at a time - is that possible ?

 

 

My ConsoleDecrypter.exe.config:

<?xml version="1.0"?>

<configuration>

<startup><supportedRuntime version="v2.0.50727"/></startup>

<appSettings>

    <add key="f:" value="D:\Download\ConsoleDecrypter\ripToISO-FullMovie.cmd"/>

    <add key="SleepDuration" value="6"/>

    <add key="AttemptReset" value="true"/>

    <add key="g:" value="D:\Download\ConsoleDecrypter\ripToISO-FullMovie.cmd"/>

    <add key="SleepDuration" value="6"/>

    <add key="AttemptReset" value="true"/>

  </appSettings>

</configuration>

My ripToISO-FullMovie.cmd

REM DVD DRIVE ONE

 

echo Processing %1  %2

echo Processing %1  %2 >> D:\Download\ConsoleDecrypter\FullMovie.log

echo Starting Rip of Drive

time /t

"C:\Program Files (x86)\DVDFab 8\DVDFab.exe" /mode fulldisc /SUBTITLE "all" /src "%1" /dest "d:\Movie\%2\%2-dvd.iso" /Title auto /outdisc dvd9 /close

echo DVD Complete

 

Link to comment

Hmm - ok it only rips 1 DVD at any time. I would like it rip multiple DVD's at a time - is that possible ?

 

Well, if your machine has the horsepower to rip more than one at a time it might be possible.  It's going to depend on whether DVDFab and whatever burner software you use will allow multiple intances running at the same time.  Try making a copy of ConsoleDecrypter.exe to some other name.  Make a config file for that new exe.  Set each one to manage a different DVD drive.  Start both up.  Stick in some DVD's.  That should be all it takes.  Let me know if it works for you.

Link to comment

I created ConsoleDecrypterF.exe/ConsoleDecrypterF.exe.config and ConsoleDecrypterG.exe/ConsoleDecrypterG.exe.config

 

 

DvdFab can run 2 exe at a time but for some reason ConsoleDecrypterG.exe starts scanning on drive F. Even though the command file says /src "G".

 

 

Will need to play around with this some more.

 

 

I dont think ripping is very CPU intensive - My U7300 laptop never gets above 5% ripping 1 DVD. I'm running an old DVD drive on USB2 which does limit transfer side to ~3mb/sec.

Link to comment

I created ConsoleDecrypterF.exe/ConsoleDecrypterF.exe.config and ConsoleDecrypterG.exe/ConsoleDecrypterG.exe.config

DvdFab can run 2 exe at a time but for some reason ConsoleDecrypterG.exe starts scanning on drive F. Even though the command file says /src "G".

 

I looked at the code and don't see how this is possible.  However, the decrypter only reads the config file when it starts up so restart it to make sure.  Also, my daughter keeps her sims dvd in all the time and my ConsoleDecrypter never disturbs it.

 

 

I dont think ripping is very CPU intensive - My U7300 laptop never gets above 5% ripping 1 DVD. I'm running an old DVD drive on USB2 which does limit transfer side to ~3mb/sec.

 

I have mine run handbrake to make an version of the ripped movies for iphone/android phone.  That runs my Phenom quad at 100% for 10 to 15 minutes or so.  I only want to run one of those at a time!  I had to replace the stock heatsink/fan because the first time I ran handbrake the cpu got up to 71c degrees.  Now it gets into the middle to high 50's.

Link to comment

I fixed a bug in the consoleDecrypter.exe and posted the new fix in the first post of this thread.

The bug was that one DVD volume label I came across had "<" and ">" in it and DVDFab balked at that for a file name.  Now I strip those off.

If anyone finds a DVD that fails to start ripping then let me know what the characters in the name are and I'll take care of it.

Link to comment

Ripped 4 DVD's yesterday with the new exe - working fine.

 

Didnt try 2 drives at a time - I'll try that today.

 

 

In your config dvd9 should be "dvd9" and it only rips to dvd5 without the "'s

 

I haven't had that problem but you may be right.  I'm guessing that since I don't rip manually it remembers DVD9 from previous rips.

 

Edit:  You're right.  I updated the two cmd files and reposted it on the first post of this thread.

Link to comment
  • 2 weeks later...

Are you copying them to .iso just for backup purposes or do you intend to view them straight from the .iso files?

 

I play them from the iso's.  Both my XBMC and CinemaTube devices treat the iso's exactly like DVDs.  I rip movies to start playing immediately (no menues) and DVD's with multiple episodes I save as Full Disc so all the DVD menues are in the iso.

Link to comment
  • 3 weeks later...

Well I just upgraded to DVDFab 8.  This required a small change in these files:

ripToISO-MainMovie.cmd

ripToISO-FullMovie.cmd

 

Example of the change in ripToISO-MainMovie.cmd:

 

"C:\Program Files (x86)\DVDFab 7\DVDFab.exe" /mode "mainmovie" /SUBTITLE "none" /src "%1" /dest "c:\Movie\%2.iso" /Title "auto" /outdisc "dvd9" /close

 

"C:\Program Files (x86)\DVDFab 8\DVDFab.exe" /mode "mainmovie" /SUBTITLE "none" /src "%1" /dest "c:\Movie\%2.iso" /Title "auto" /outdisc "dvd9" /close

 

To get the new versions go to the first post in this thread.

 

 

Link to comment
  • 5 weeks later...

I changed the commands so that it's all automatic, no prompting anymore.

I have updated the files.  I got tired of the imgburn prompting me for a layer break position on every rip so I investigated the command line api again. 

 

Both DVDFab and Imgburn have command line features so I broke the command into two parts.  Now DVDFab only does the rip.  After it's done I call imgburn explicitly. 

 

Note: I'm not certain but you may have to open imgburn manually once and set the custom size.  This may or may not have eliminated the prompt. 

Steps:

Open Imgburn.

Select Mode menu and choose Build option.

Click the Advanced tab when it shows.

Click on Media tab.

Set the Double Layer Profile to Custom and set Media Capacity to 4169920 (8144 MB).

Close Imgburn.

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.