- Handle youtube site structure change, video quality setting currently does not...
authorRalf Ertzinger <sun@ryoko-darknet.camperquake.de>
Thu, 13 Aug 2009 08:57:31 +0000 (10:57 +0200)
committerRalf Ertzinger <sun@ryoko-darknet.camperquake.de>
Thu, 13 Aug 2009 08:57:31 +0000 (10:57 +0200)
videosite/YouTubeGrabber.pm

index 174f76d..da70e14 100644 (file)
@@ -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]) {