From 46384f66c3337d7775723c87de96d426271f552c Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Thu, 13 Aug 2009 10:57:31 +0200 Subject: [PATCH] - Handle youtube site structure change, video quality setting currently does not work yet --- videosite/YouTubeGrabber.pm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/videosite/YouTubeGrabber.pm b/videosite/YouTubeGrabber.pm index 174f76d..da70e14 100644 --- a/videosite/YouTubeGrabber.pm +++ b/videosite/YouTubeGrabber.pm @@ -102,10 +102,14 @@ sub _parse { } } elsif ('script' eq $tag->[0]) { $e = $p->get_text(); - if ($e =~ m|/watch_fullscreen\?(.+)\x27|) { - my %args = map { split(/=/, $_, 2); } split(/&(?!amp;)/, $1); - $metadata->{'DLURL'} = sprintf('http://www.youtube.com/get_video.php?video_id=%s&t=%s%s', - $metadata->{'ID'}, $args{'t'}, $append); + if ($e =~ m|\x22fmt_url_map\x22\s*:\s*\x22([^\x22]+)\x22|) { + my $urls = $1; + my @urls; + + $urls =~ s/%(..)/chr(hex($1))/ge; + @urls = split(/\|/, $urls); + + $metadata->{'DLURL'} = $urls[3]; $self->debug('URL found: %s', $metadata->{'DLURL'}); } } elsif ('div' eq $tag->[0]) { -- 1.8.3.1