]> git.donarmstrong.com Git - bin.git/blobdiff - rip_movie
add mutt alias which executes neomutt if that exists
[bin.git] / rip_movie
index 9256d0a52fdfc02ea17a85c17cff3d77b7b50b2f..26e49e05af13d5a2975d2762af14753841794389 100755 (executable)
--- a/rip_movie
+++ b/rip_movie
@@ -21,6 +21,10 @@ rip_movie - Rips Movies using HandBrakeCLI
  rip_movie
 
  Options:
+  --device Device to rip from (default /dev/dvd)
+  --output Output filename
+  --min-duration Minimum duration in minutes for episode
+  --titles Optional titles to rip; overrides title autodetection
   --debug, -d debugging level (Default 0)
   --help, -h display this help
   --man, -m display manual
@@ -114,7 +118,7 @@ die "no title" if not defined $title;
 my $filename = lc($title);
 $filename =~ s/[\s_-]+/_/;
 
-use Data::Dumper;
+use Data::Printer;
 
 my @titles;
 for my $title_bit ($result =~ /\n(\+ title \d+:.+?)(?=\n\+ title\s+|$)/gs) {
@@ -148,6 +152,8 @@ for my $title_bit ($result =~ /\n(\+ title \d+:.+?)(?=\n\+ title\s+|$)/gs) {
     push @titles,\%title;
 }
 
+# p @titles;
+
 #print STDERR Dumper(\@titles);
 
 
@@ -160,14 +166,14 @@ if (not @titles_to_rip) {
            $longest_title = $i;
        }
        if ($title->{duration} >= $options{min_duration}) {
-           push @titles_to_rip,$i;
+           push @titles_to_rip,$i+1;
        }
     }
     if (not @titles_to_rip) {
-       push @titles_to_rip,$longest_title;
+       push @titles_to_rip,$longest_title+1;
     }
-    print STDERR Dumper({longest_title => $longest_title});
 }
+# p @titles_to_rip;
 my $invalid_titles = 0;
 for my $i (@titles_to_rip) {
     if ($i > @titles or $i < 1) {
@@ -182,9 +188,12 @@ my $multiple_titles = @titles_to_rip > 1;
 #print STDERR Dumper(\@titles_to_rip,[@titles[map {$_} @titles_to_rip]]);
 #exit;
 
+p @titles_to_rip;
+p @titles;
+
 for my $i (@titles_to_rip) {
-    system('HandBrakeCLI','-i',$options{device},'-t',$titles[$i]{num},
-          '-o',$filename.($multiple_titles ? '_'.$titles[$i]{num} : '').".mkv",
+    system('HandBrakeCLI','-i',$options{device},'-t',$titles[$i-1]{num},
+          '-o',$filename.($multiple_titles ? '_'.$titles[$i-1]{num} : '').".mkv",
           '-e','x264','-2','-q','21',
           '-a',join(',',@{$titles[$i-1]{audio_tracks}}),
           '-s',join(',',@{$titles[$i-1]{subtitle_tracks}}),