- Fix blip.tv grabber
authorRalf Ertzinger <sun@ryoko.camperquake.de>
Sat, 19 Jul 2008 12:17:43 +0000 (14:17 +0200)
committerRalf Ertzinger <sun@ryoko.camperquake.de>
Sat, 19 Jul 2008 12:17:43 +0000 (14:17 +0200)
videosite/BlipTVGrabber.pm

index aeda2d9..1b2349d 100644 (file)
@@ -36,6 +36,7 @@ sub _parse {
     my $metadata = {};
     my $p = HTML::Parser->new(api_version => 3);
     my @accum;
+    my @text;
     my $e;
     my $xml = undef;
 
@@ -55,16 +56,15 @@ sub _parse {
     }
 
     $p->handler(start => \@accum, "tagname, attr");
-    $p->report_tags(qw(div));
+    $p->handler(text => \@text, "text");
+    $p->report_tags(qw(script));
     $p->utf8_mode(1);
     $p->parse($content);
 
-    # Look for the post id in the div tags
-    foreach $e (@accum) {
-        if (exists($e->[1]->{'pokkariparameters'})) {
-            if ($e->[1]->{'pokkariparameters'} =~ m|posts_id:"(\d+)"|) {
-                $xml = $1;
-            }
+    # Look for the post id in the javascript code
+    foreach $e (@text) {
+        if ($e->[0] =~ m|player.setPostsId\((\d+)\)|s) {
+            $xml = $1;
         }
     }
 
@@ -80,7 +80,7 @@ sub _parse {
     }
 
     $xml = XML::Simple::XMLin($content, KeepRoot => 1);
-    $metadata->{'DLURL'} = $xml->{'rss'}->{'channel'}->{'item'}->{'media:group'}->{'media:content'}->{'url'};
+    $metadata->{'DLURL'} = $xml->{'rss'}->{'channel'}->{'item'}->{'enclosure'}->{'url'};
     $metadata->{'TITLE'} = $xml->{'rss'}->{'channel'}->{'item'}->{'media:title'};
 
     unless(defined($metadata->{'DLURL'}) && defined($metadata->{'TITLE'})) {