From 459af70cec834289606d6856346a661178a7866d Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sun, 4 May 2008 13:13:29 +0200 Subject: [PATCH] - Add video quality parameter for GoogleVideo --- videosite/GoogleGrabber.pm | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/videosite/GoogleGrabber.pm b/videosite/GoogleGrabber.pm index 5bfc61f..442a872 100644 --- a/videosite/GoogleGrabber.pm +++ b/videosite/GoogleGrabber.pm @@ -20,6 +20,7 @@ sub new { $self->{'NAME'} = 'google'; $self->{'PATTERNS'} = ['(http://video\.google\.com/videoplay\?docid=([-\d]+))']; + $self->{'_PARAMS'} = {'QUALITY' => ['normal', 'Quality of the video to download. normal = standard resolution flash video, h264 = high resolution MPEG4 video']}; bless($self, $class); $self->_prepare_parameters(); @@ -35,6 +36,7 @@ sub _parse { my $metadata = {}; my $p; my $e; + my $qualty = $self->_getval('QUALITY'); $url =~ m|$pattern|; $url = $1; @@ -59,10 +61,21 @@ sub _parse { $metadata->{'TITLE'} =~ s/\s?- Google Video$//s; } - while ($e = $p->get_tag('a')) { - if ((exists($e->[1]{'id'})) and ('ipoddownloadlink' eq $e->[1]{'id'})) { - $metadata->{'DLURL'} = $e->[1]{'href'}; - last; + if ($quality eq 'h264') { + while ($e = $p->get_tag('a')) { + if ((exists($e->[1]{'id'})) and ('ipoddownloadlink' eq $e->[1]{'id'})) { + $metadata->{'DLURL'} = $e->[1]{'href'}; + last; + } + } + } else { + while ($e = $p->get_tag('script')) { + if ($p->get_text() =~ m|googleplayer\.swf\?\\46videoUrl\\75(.+?)\\46|s) { + my $u = $1; + $u =~ s/%(..)/chr(hex($1))/ge; + $metadata->{'DLURL'} = $u; + last; + } } } -- 1.8.3.1