X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=videosite%2FVimeoGrabber.pm;h=19dfe94e56f6380eef342f5f5eef1d3066c63733;hb=1dd46d87d78c3cac2732ba942f4412f3a168a837;hp=68295ceb0a42a9181bf9d754929c486f4f1f7116;hpb=424740b4bc310d7266236c12505787159d26613d;p=videosite.git diff --git a/videosite/VimeoGrabber.pm b/videosite/VimeoGrabber.pm index 68295ce..19dfe94 100644 --- a/videosite/VimeoGrabber.pm +++ b/videosite/VimeoGrabber.pm @@ -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', ); } }