New programs for dealing with VOBs ripped without being decrypted.
[dvdrip] / dvdrip-retry-botched-vobs
diff --git a/dvdrip-retry-botched-vobs b/dvdrip-retry-botched-vobs
new file mode 100755 (executable)
index 0000000..4504aad
--- /dev/null
@@ -0,0 +1,27 @@
+#! /bin/sh -e
+
+dev=${DVDRIP_DEVICE-/dev/dvd}
+
+find "$@" -type f -name "*.retry" -print | while IFS= read -r r; do
+  iso=${r%.retry}.iso
+
+  want_id=$(dvd-id "$iso")
+  echo "Insert $iso..."
+  while :; do
+    id=$(dvd-id "$dev")
+    case $id in "$want_id") break ;; esac
+    sleep 2
+  done
+
+  for try in 3 2 1 0; do
+    dvd-sector-copy -R"$r" "$dev" "$iso"
+
+    set +e; DVDCSS_CACHE=off dvd-check-keys -b"$r.new" "$dev"; rc=$?; set -e
+    case $rc,$try in
+      0,*) rm -f "$retry"; break ;;
+      1,0) echo "Giving up :-("; mv "$r.new" "$r"; break ;;
+      1,*) echo "Still broken!  Let's try again..." ;;
+      *) echo "Failed! :-("; exit 2 ;;
+    esac
+  done
+done