#!/bin/sh exec 1> /var/log/ripper/ripper.log 2>&1 function handbrake_rip() { TEMP_FILE="${1}.m4v" if [ -e "/mnt/Media/IncomingBackup/$TEMP_FILE" ]; then TEMP_FILE="NewMovie-$(date +%s).m4v" fi HandBrakeCLI --main-feature --native-language eng \ -i /dev/cdrom -o "$TEMP_FILE" \ --subtitle scan --subtitle-burned native cp "$TEMP_FILE" "/mnt/Media/Incoming/$TEMP_FILE" } function dvdbackup_rip() { dvdbackup -i /dev/cdrom -M -p cp -r "${1}" "/mnt/Media/IncomingBackup/" } function rip_dvd() { # Make sure we have storage if ! mount | grep /mnt/Media > /dev/null; then email "Error: DVD Rip Failed" "Tried to rip but media wasn't mounted" return 1 fi # Make a temp directory and go there TEMPDIR=$(mktemp -d) echo $TEMPDIR cd $TEMPDIR # Get title and language HandBrakeCLI --scan -i /dev/cdrom > dvdinfo 2>&1 TITLE=$(egrep -o 'DVD Title:.*' dvdinfo | awk 'BEGIN { FS=": "; } { print $2 }') LANGUAGE=$(grep -A 1 'audio tracks:' dvdinfo | sed -n 2p | awk '{ print $3 }') # Makeup something unique if the DVD doesn't have one if [ -z "$TITLE" ]; then TITLE="NewMovie-$(date +%s)" fi trap "eject /dev/cdrom" ERR #dvdbackup_rip "$TITLE" handbrake_rip "$TITLE" eject /dev/cdrom cd /tmp && rm -rf "$TEMPDIR" } while true; do if ! blkid /dev/cdrom | grep 'TYPE=' >/dev/null; then sleep 1 else echo "=============================== START DVD RIP ==============================" rip_dvd echo "============================== FINISH DVD RIP ==============================" fi done