fix quoting in AsyncWgetFileGetter again
[videosite.git] / videosite / VimeoGrabber.pm
index 68295ce..19dfe94 100644 (file)
@@ -16,17 +16,15 @@ use strict;
 
 sub new {
     my $class = shift;
-    my $self = $class->SUPER::new();
-
-    $self->{'NAME'} = 'vimeo';
-    $self->{_SELFTESTURL} = 'http://vimeo.com/35055590';
-    $self->{_SELFTESTTITLE} = 'Hello';
-    $self->{'PATTERNS'} = ['(http://(?:[-a-zA-Z0-9_.]+\.)*vimeo.com/(\d+))'];
-
-    bless($self, $class);
-    $self->_prepare_parameters();
-
-    return $self;
+    my $self = $class->SUPER::new(
+        NAME => 'vimeo',
+        _SELFTESTURL => 'http://vimeo.com/35055590',
+        _SELFTESTTITLE => 'Hello',
+        PATTERNS => ['(http://(?:[-a-zA-Z0-9_.]+\.)*vimeo.com/(?:m/)?(\d+))'],
+        @_,
+    );
+
+    return bless($self, $class);
 }
 
 sub _parse {
@@ -65,7 +63,7 @@ sub _parse {
         if ($e->[0] eq 'script') {
             my $t = $p->get_text();
 
-            if ($t =~ m|clip\d+_\d+ = (.*\});Player|) {
+            if ($t =~ m|clip\d+_\d+ = (.*\});Player|s) {
                 my $jsp = videosite::JSArrayParser->new();
                 my $r;
 
@@ -85,13 +83,16 @@ sub _parse {
                 }
 
                 $metadata->{'TITLE'} = $r->{'config'}->{'video'}->{'title'};
+                $hd = grep { $_ eq 'hd' } @{$r->{'config'}->{'video'}->{'files'}->{'h264'}};
+                $self->debug("HD: %d", $hd);
                 $r = $r->{'config'}->{'request'};
 
-                $metadata->{'DLURL'} = sprintf("http://%s/play_redirect?clip_id=%d&sig=%s&time=%d&quality=hd&codecs=H264,VP8,VP6",
+                $metadata->{'DLURL'} = sprintf("http://%s/play_redirect?clip_id=%d&sig=%s&time=%d&quality=%s&codecs=H264,VP8,VP6",
                         $r->{'player_url'},
                         $metadata->{'ID'},
                         $r->{'signature'},
                         $r->{'timestamp'},
+                        $hd?'hd':'sd',
                         );
             }
         }