#!/bin/bash -e DVD_DEVICE="${DVD_DEVICE:-/dev/dvd}" if [ -z "$1" ]; then echo "Usage: $0 NAME [num]" exit 1 fi # Calculate the name for ripping base="$1" last="$(find . -maxdepth 1 -type f -name "${base}*.iso" | sort -n | tail -n 1)" if [ -n "$2" ]; then num="$2" elif [ -z "$last" ]; then num="1" else num="${last##./${base}}" num="${num%%.iso}" num="$(($num + 1))" fi output="${base}${num}.iso" # Sometimes the cached keys are wrong, since it only takes a few seconds to # recrack I prefer to do it each time rm -rf ~/.dvdcss # Need to use libdvdread/libdvdcss to unlock the drive before copying identify-disc --dvd-device "$DVD_DEVICE" echo echo echo "Will rip to '$output'" for i in $(seq 3 -1 1); do echo " $i..." sleep 1 done # Rip to ISO skipping bad sectors then decrypt to VIDEO_TS directory set -x rm -f "$output" ddrescue -n -b 2048 "$DVD_DEVICE" "$output" identify-disc --dvd-device "$output" eject "$DVD_DEVICE"