#!/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 d -name "${base}*" | sort -n | tail -n 1)" if [ -z "$last" ]; then num="1" elif [ -n "$2" ]; then num="$2" else num="${last##./${base}}" num="$(($num + 1))" fi next="${base}${num}" # 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 '$next'" 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 -rf "${next}" "${next}.iso" ddrescue -n -b 2048 "$DVD_DEVICE" "${next}.iso" dvdbackup -n "$next" -M -i "${next}.iso" || true identify-disc --dvd-device "$next" rm "${next}.iso" eject "$DVD_DEVICE"