Merge branch 'master' of ssh://ryoko:22003/home/sun/GIT/videosite
authorRalf Ertzinger <ralf@skytale.net>
Mon, 27 Feb 2012 18:03:55 +0000 (19:03 +0100)
committerRalf Ertzinger <ralf@skytale.net>
Mon, 27 Feb 2012 18:03:55 +0000 (19:03 +0100)
1  2 
videosite/YouTubeGrabber.pm

@@@ -57,7 -57,7 +57,7 @@@ sub new 
      $self->{'NAME'} = 'youtube';
      $self->{_SELFTESTURL} = 'http://www.youtube.com/watch?v=dMH0bHeiRNg';
      $self->{_SELFTESTTITLE} = 'Evolution of Dance - By Judson Laipply';
 -    $self->{'PATTERNS'} = ['(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/watch(?:_popup)?\?(?:.+=.+&|&)*v=([-a-zA-Z0-9_]+))',
 +    $self->{'PATTERNS'} = ['(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/watch(?:_popup)?\?.*?v=([-a-zA-Z0-9_]+))',
                             '(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/watch\#\!v=([-a-zA-Z0-9_]+))',
                             '(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/v/([-a-zA-Z0-9_]+))',
                             '(https?://(?:[-a-zA-Z0-9_.]+\.)*youtube\.(?:com|de|co.uk)/user/[[:alnum:]]+\?v=([-a-zA-Z0-9_]+))',
@@@ -244,65 -244,66 +244,66 @@@ sub _parse_by_scrape 
              $e = $p->get_text();
              $self->debug("Found script: %s", $e);
  
-             if ($e =~ m|\x27SWF_ARGS\x27:\s+(.+),|) {
-                 my $args = $1;
-                 $self->debug("Found SWF_ARGS: %s", $args);
-                 $jsp = videosite::JSArrayParser->new();
-                 $self->debug("Using %s to parse", ref($jsp));
-                 $r = $jsp->parse($args);
-                 unless(defined($r)) {
-                     $self->error("Found information hash, but could not parse");
-                     return undef;
-                 }
-                 if (exists($r->{'fmt_url_map'}) and ($r->{'fmt_url_map'} ne '')) {
-                     my $urls =  $r->{'fmt_url_map'};
-                     $self->debug("Video has fmt_url_map: %s", $urls);
-                     $urls = $self->decode_hexurl($urls);
-                     %urls = split(/[\|,]/, $urls);
-                     $self->debug("Pagetype: old (SWF_ARGS), fmt_url_map");
-                 } elsif (exists($r->{'t'}) and ($r->{'t'} ne '')) {
-                     my $thash = $r->{'t'};
-                     if (exists($r->{'fmt_map'}) && ($r->{'fmt_map'} ne '')) {
-                         my $fmt = $r->{'fmt_map'};
-                         my @fmt;
-                         $self->debug('Video has fmt_map');
-                         $fmt = $self->decode_hexurl($fmt);
-                         @fmt = split(/,/, $fmt);
-                         foreach (@fmt) {
-                             @_=split(/\//);
-                             $urls{$_[0]} =  sprintf('http://www.youtube.com/get_video?video_id=%s&fmt=%d&t=%s', 
-                                 $metadata->{'ID'},
-                                 $_[0],
-                                 $thash);
-                         }
-                         $self->debug("Pagetype: 2009 (SWF_ARGS), t with fmt_map");
-                     } else {
-                         $urls{5} = sprintf('http://www.youtube.com/get_video?video_id=%s&t=%s',
-                             $metadata->{'ID'},
-                             $thash);
-                         $self->debug("Pagetype: 2009 (SWF_ARGS), t without fmt_map");
-                     }
-                 } else {
-                     $self->error('Neither fmt_url_map nor t found in video information hash');
-                     return undef;
-                 }
-             } elsif ($e =~ m|var swfHTML = .*fmt_url_map=([^\&]+)\&|) {
-                 my $urls = $1;
-                 $self->debug("Video has fmt_url_map: %s", $urls);
-                 $urls = $self->decode_hexurl($urls);
-                 %urls = split(/[\|,]/, $urls);
-                 $self->debug("Pagetype: 2010 (swfHTML), fmt_url_map");
-             } elsif ($e =~ m|\x27PLAYER_CONFIG\x27:\s+(.+)(?:\}\);)?|) {
+ #            if ($e =~ m|\x27SWF_ARGS\x27:\s+(.+),|) {
+ #                my $args = $1;
+ #
+ #                $self->debug("Found SWF_ARGS: %s", $args);
+ #                $jsp = videosite::JSArrayParser->new();
+ #                $self->debug("Using %s to parse", ref($jsp));
+ #                $r = $jsp->parse($args);
+ #
+ #                unless(defined($r)) {
+ #                    $self->error("Found information hash, but could not parse");
+ #                    return undef;
+ #                }
+ #
+ #                if (exists($r->{'fmt_url_map'}) and ($r->{'fmt_url_map'} ne '')) {
+ #                    my $urls =  $r->{'fmt_url_map'};
+ #
+ #                    $self->debug("Video has fmt_url_map: %s", $urls);
+ #
+ #                    $urls = $self->decode_hexurl($urls);
+ #                    %urls = split(/[\|,]/, $urls);
+ #                    $self->debug("Pagetype: old (SWF_ARGS), fmt_url_map");
+ #
+ #                } elsif (exists($r->{'t'}) and ($r->{'t'} ne '')) {
+ #                    my $thash = $r->{'t'};
+ #
+ #                    if (exists($r->{'fmt_map'}) && ($r->{'fmt_map'} ne '')) {
+ #                        my $fmt = $r->{'fmt_map'};
+ #                        my @fmt;
+ #
+ #                        $self->debug('Video has fmt_map');
+ #                        $fmt = $self->decode_hexurl($fmt);
+ #                        @fmt = split(/,/, $fmt);
+ #                        foreach (@fmt) {
+ #                            @_=split(/\//);
+ #                            $urls{$_[0]} =  sprintf('http://www.youtube.com/get_video?video_id=%s&fmt=%d&t=%s', 
+ #                                $metadata->{'ID'},
+ #                                $_[0],
+ #                                $thash);
+ #                        }
+ #                        $self->debug("Pagetype: 2009 (SWF_ARGS), t with fmt_map");
+ #
+ #                    } else {
+ #                        $urls{5} = sprintf('http://www.youtube.com/get_video?video_id=%s&t=%s',
+ #                            $metadata->{'ID'},
+ #                            $thash);
+ #                        $self->debug("Pagetype: 2009 (SWF_ARGS), t without fmt_map");
+ #                    }
+ #                } else {
+ #                    $self->error('Neither fmt_url_map nor t found in video information hash');
+ #                    return undef;
+ #                }
+ #            } elsif ($e =~ m|var swfHTML = .*fmt_url_map=([^\&]+)\&|) {
+ #                my $urls = $1;
+ #                $self->debug("Video has fmt_url_map: %s", $urls);
+ #
+ #                $urls = $self->decode_hexurl($urls);
+ #                %urls = split(/[\|,]/, $urls);
+ #                $self->debug("Pagetype: 2010 (swfHTML), fmt_url_map");
+ #            } elsif ($e =~ m|\x27PLAYER_CONFIG\x27:\s+(.+)(?:\}\);)?|) {
+              if ($e =~ m|\x27PLAYER_CONFIG\x27:\s+(.+)(?:\}\);)?|) {
                  my $args = $1;
                  $self->debug("Found PLAYER_CONFIG: %s", $args);