From ffc96ef2747d6f4a665194948dd272dcd1d4c1d7 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Fri, 3 Jun 2011 11:26:09 +0200 Subject: [PATCH] Youtube: factor out url selection routine --- videosite/YouTubeGrabber.pm | 61 ++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/videosite/YouTubeGrabber.pm b/videosite/YouTubeGrabber.pm index dc830c6..8073237 100644 --- a/videosite/YouTubeGrabber.pm +++ b/videosite/YouTubeGrabber.pm @@ -141,23 +141,7 @@ sub _parse_by_video_info { $urls =~ s/%(..)/chr(hex($1))/ge; $urls = { split /[\|,]/, $urls }; - foreach (keys(%{$urls})) { - if (exists($videoformats{$_})) { - $self->debug('Found URL for format %s (%s): %s', $_, $videoformats{$_}, $urls->{$_}); - } else { - $self->error('Unknown format %s: %s', $_, $urls->{$_}); - } - } - - foreach (@{$preflist}) { - if (exists($urls->{$_})) { - $self->debug("Selected URL with quality level %s", $_); - $metadata->{'DLURL'} = $urls->{$_}; - last; - } - } - - $self->debug('URL found: %s', $metadata->{'DLURL'}); + $self->__pick_url($urls, $preflist, $metadata); $metadata->{'TITLE'} = $content->{'title'}; $metadata->{'TITLE'} =~ s/\+/ /g; @@ -334,23 +318,7 @@ sub _parse_by_scrape { } if (%urls) { - foreach (keys(%urls)) { - if (exists($videoformats{$_})) { - $self->debug('Found URL for format %s (%s): %s', $_, $videoformats{$_}, $urls{$_}); - } else { - $self->error('Unknown format %s: %s', $_, $urls{$_}); - } - } - - foreach (@{$preflist}) { - if (exists($urls{$_})) { - $self->debug("Selected URL with quality level %s", $_); - $metadata->{'DLURL'} = $urls{$_}; - last; - } - } - - $self->debug('URL found: %s', $metadata->{'DLURL'}); + $self->__pick_url(\%urls, $preflist, $metadata); last SWF_ARGS; } } elsif ('div' eq $tag->[0]) { @@ -480,4 +448,29 @@ sub __login { return ($ua->get($videourl), $cookie); } +sub __pick_url { + my $self = shift; + my $urls = shift; + my $preflist = shift; + my $metadata = shift; + + foreach (keys(%{$urls})) { + if (exists($videoformats{$_})) { + $self->debug('Found URL for format %s (%s): %s', $_, $videoformats{$_}, $urls->{$_}); + } else { + $self->error('Unknown format %s: %s', $_, $urls->{$_}); + } + } + + foreach (@{$preflist}) { + if (exists($urls->{$_})) { + $self->debug("Selected URL with quality level %s", $_); + $metadata->{'DLURL'} = $urls->{$_}; + last; + } + } + + $self->debug('URL found: %s', $metadata->{'DLURL'}); +} + 1; -- 1.8.3.1