Creating a bunch of DVD Ripping Machines with THE INTERNET
TheJoeCoder
1202 Words … ⏲ Reading Time:5 Minutes, 27 Seconds
2025-08-19 10:54 +0100
Backstory
Okay, here’s the story. My family has a bunch of old DVDs that I want to copy onto my NAS in order to preserve the media - and also because we can then watch them at any time from anywhere in the house. I need a few DVD drives to do this because we have over 230 of the things to chew through. And at some point I’ll need to acquire a Blu-Ray and HD DVD drive(s) because we have both of those formats and the latter is quite susceptible to disc rot (ughhh).
I don’t need it to be completely automated, at least at the beginning, so I’m going to start with the basics and work my way up.
Hardware and OS
I have a bunch of old laptops and desktops lying around that have DVD drives in them. Unfortunately, I don’t have enough storage media to share around with them.
That got me thinking - they don’t really need local storage, do they? We can just network boot them, and then save directly to a folder on my NAS.
I’m going with debian for this one, because it’s decently fast even on old hardware, and I’m using netboot.xyz to boot it seeing as I already have that running as a docker container in my network. All I had to do was to make sure my Unifi DHCP settings were set to boot from netboot.xyz.kpxe and then I was good to go.
I just booted, then selected Live CD -> Debian -> Debian with XFCE to boot it, then waited a few minutes.
The username/password combo for the live user is user:live
by the way. Took me a while to figure that out.
I did have some issues with booting on some older systems where the RTC battery had died - SSL certificate error downloading the squashfs filesystem. I needed to enter the BIOS and change the date from whatever it reset to.
Software Configuration
xrdp
First, I installed xrdp on the desktops because I could then remote in via my Windows machine, seeing as I only have one spare display that has a HDMI port to move around.
I had to remove the /run/live entries from apt first, seeing as they don’t work with netboot.xyz:
sudo nano /etc/apt/sources.list
Commented out like so:
#deb [trusted=yes] file:/run/live/medium bookworm main non-free-firmware
deb https://deb.debian.org/debian/ bookworm main non-free-firmware
deb-src https://deb.debian.org/debian/ bookworm main non-free-firmware
Then I could install xrdp:
sudo apt update
sudo apt install xrdp -y
Now, with that done I can remote in and keep configuring.
MakeMKV
The software I’m going to use to rip the DVDs is MakeMKV. It’s the best way to grab the data off the disc without re-encoding it, and then once it’s preserved I can decide what to do with it.
Following the instructions on here for linux… Install the requirements, including tar and wget:
sudo apt install -y tar wget less build-essential pkg-config libc6-dev libssl-dev libexpat1-dev libavcodec-dev libgl1-mesa-dev qtbase5-dev zlib1g-dev
Download the latest version’s files (1.18.1 as of writing) and unzip:
cd /tmp
wget https://www.makemkv.com/download/makemkv-bin-1.18.1.tar.gz
wget https://www.makemkv.com/download/makemkv-oss-1.18.1.tar.gz
tar xvf makemkv-bin-1.18.1.tar.gz
tar xvf makemkv-oss-1.18.1.tar.gz
Configure and make the OSS portion:
cd makemkv-oss-1.18.1
./configure
make
sudo make install
Make and install the binary portion (you will be prompted to answer ‘yes’ to the license agreement after reading):
cd ../makemkv-bin-1.18.1
make
# Read, press q to exit the license agreement, answer yes when prompted
sudo make install
And you’re done! You can open MakeMKV and insert either your license key or the trial key from this website. The trial key is time limited so you have to redo it every month. Currently, it’s:
T-PuNYycrTTHW4QEOfhDrMuJMpojNqmY5CGuESAKXzHvwBvBcXhtsJLj4g6OAXd1zfzk
… and is valid until the end of September 2025.
CIFS (SMB)
Mounting the CIFS share is simple. but it requires yet more packages.
sudo apt install -y cifs-utils psmisc
Then you can make a directory and mount the share. I’m using noperm here so that the live user can access the mount:
sudo mkdir /mnt/jellyfin-media
sudo mount -t cifs -o user=nasuser,noperm //192.168.1.2/jellyfin-media /mnt/jellyfin-media
I then made a directory in the network share called temp
to store my ripped files. I changed the output directory in preferences to semi-auto, and set my temp folder as the directory. This means it will automatically set the directory prefix to my folder, and then create a new folder for each DVD.
Ripping The Discs
Open MakeMKV. Insert your disc. Click the big button to scan the disc. Once that’s done you can change the directory if you want, select the titles you want to keep, and then click the button to start copying. It’s that simple.
Failed Encore: Docker
Fair warning: this did not work. I ended up just forgetting my NAS and instead installing
There are two machines I can’t just reboot into a live environment that have DVD drives I’d really like to use. Those are my NAS and my other server.
They have Docker installed, and I’d love to take advantage of that. So:
Mount the folder where you want to store your files on the host operating system since you can’t use mounts inside a docker container.
Run a docker container with Kasm’s desktop container, adding access to your DVD drive and folder:
sudo docker run --rm -dt --shm-size=512m -p 6901:6901 --device /dev/sr0:/dev/sr0 -v /mnt/jellyfin-media:/mnt/jellyfin-media -e VNC_PW=password --name ripper-container kasmweb/desktop:1.17.0
Then, since the password isn’t set for kasm-user, create a shell in the container as root and change the password for kasm-user:
sudo docker exec -it -u 0 ripper-container /bin/bash
# Now, in the container:
passwd kasm-user
# Type a memorable password
nano /etc/sudoers
# Add the following line to the sudoers file:
kasm-user ALL=(ALL:ALL) ALL
# CTRL+X, y, ENTER
Now you can log in to https://<server ip>:6901 with the username kasm_user
and the password password
and follow the steps above.
The Real Encore: makemkvcon
There is a console version of MakeMKV that I was able to use on my server, since it doesn’t have a desktop environment installed and X11 forwarding was flaky at best (yes I tried). It’s bundled with every MakeMKV install and is used as follows:
# Make the directory (makemkvcon doesn't do this automatically)
mkdir -p /mnt/jellyfin-media/temp/MY_MOVIE
# Rip all tracks over 120 seconds the DVD to the folder as MKVs
makemkvcon mkv --progress=-same --minlength=120 disc:0 all /mnt/jellyfin-media/temp/MY_MOVIE
# Eject the drive
eject
I was lucky to be able to configure MakeMKV in the UI before X11 forwarding broke. If you can’t have access to a GUI at all, create the config file at ~/.MakeMKV/settings.conf
and add the following contents, replacing the license key with yours:
#
# MakeMKV settings file, written by MakeMKV v1.18.1 linux(x64-release)
#
app_Java = ""
app_Key = "YOUR-LICENSE-KEY"
app_Proxy = ""
app_ccextractor = ""
sdf_Stop = ""
The Aftermath
I had three Linux machines network or USB booted (it’s a long and laggy story) running the MakeMKV GUI over xrdp, a laptop which refused to netboot but had a Windows install on it which I just used, my desktop with a USB DVD drive, and my server running the MakeMKV cli. That’s a total of 6 DVD drives all ripping to the same folder.
Next is converting the files so they take up less space…