#!/usr/bin/env bash #------------------------------------------------------------------------------# # # BD titelweise rippen # # http://indertat.de/wiki/doku.php?id=blurays_kopieren # #------------------------------------------------------------------------------# #VERSION="v2020102300" # zum ersten Mal BD gerippt #VERSION="v2021081800" # Hinweis für einen "beta key" hinzugefügt VERSION="v2025102300" # von disc:0 auf dev:/dev/sg0 umgestellt PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin" #------------------------------------------------------------------------------# ### Vorbereitungen kldload linux64 2>/dev/null DISK_INFO="$(makemkvcon -r info disc:0)" REGISTRATION_KEY="$(echo "${DISK_INFO}" | fgrep 'enter a registration key to continue using the current version')" rm -f makemkvcon.core echo "${DISK_INFO}" > /tmp/makemkvcon.log TITEL_ANZAHL="$(echo "${DISK_INFO}" | egrep '^TCOUNT:' | awk -F':' '{print $2}')" TITEL_NAME="$(echo "${DISK_INFO}" | fgrep '/dev/sg0' | rev | awk -F'"' '{gsub("[ \t]","_");print $4}' | rev)" echo " # REGISTRATION_KEY='${REGISTRATION_KEY}' # TITEL_ANZAHL='${TITEL_ANZAHL}' # TITEL_NAME='${TITEL_NAME}' " #exit 10 if [ "x${REGISTRATION_KEY}" != "x" ] ; then echo "Es wird ein Registrierungsschlüssel benötigt, damit diese Software weiterhin funktioniert." echo " Einen Beta-Key mit kurzem Gültigkeitszeitraum, kann man von hier bekommen:" echo ' https://forum.makemkv.com/forum/viewtopic.php?f=5&t=1053' echo exit 11 fi if [ "x${TITEL_NAME}" == "x" ] ; then echo "Die BD konnte nicht gelesen werden." echo exit 12 fi mkdir ${TITEL_NAME} || exit 11 cd ${TITEL_NAME} || exit 12 #------------------------------------------------------------------------------# ### Rippen #makemkvcon mkv disc:0 all . ls -lha /dev/sg0 makemkvcon mkv dev:/dev/sg0 all . rm -f makemkvcon.core #------------------------------------------------------------------------------# ### Rechte für weitere Bearbeitungen setzen chown -R mmuser:dlna * #------------------------------------------------------------------------------# ### Disk auswerfen if [ "$(uname -s)" == "FreeBSD" ] ; then ### FreeBSD #DVD_DEV="/dev/cd0" DVD_DEV="/dev/$(camcontrol devlist | grep -E 'DVD|BD' | awk '{print $NF}' | tr -s '[(,)]' '\n' | grep -Ev '^$|pass[0-9]' | egrep -v 'sg[0-9]')" # elif [ "$(uname -s)" = "Linux" ] ; then ### Linux #DVD_DEV="/dev/sr0" DVD_DEV="/dev/$(grep -E 'DVD|BD' /sys/block/*/device/model | awk -F'/' '{print $4}' | egrep -v 'sg[0-9]')" # else ### sollte in FreeBSD _und_ in Linux funktionieren DVD_DEV="$(ls -1 /dev/dvd* /dev/cd* 2>/dev/null | head -n1)" fi eject ${DVD_DEV}