multimedia/get_flash_videos
www/p5-WWW-YouTube-Download

Index: multimedia/get_flash_videos/Makefile
===================================================================
RCS file: /cvs/ports/multimedia/get_flash_videos/Makefile,v
retrieving revision 1.7
diff -u -p -r1.7 Makefile
--- multimedia/get_flash_videos/Makefile        12 Jul 2011 13:02:28 -0000      
1.7
+++ multimedia/get_flash_videos/Makefile        5 Aug 2011 17:04:52 -0000
@@ -4,6 +4,7 @@ COMMENT=                download flash video files fro
 
 DISTNAME=              App-get_flash_videos-1.24.20110712
 PKGNAME=               ${DISTNAME:S/App-//}
+REVISION=              0
 CATEGORIES=            multimedia
 
 HOMEPAGE=              http://get-flash-videos.googlecode.com/
Index: multimedia/get_flash_videos/patches/patch-lib_FlashVideo_Site_Youtube_pm
===================================================================
RCS file: 
multimedia/get_flash_videos/patches/patch-lib_FlashVideo_Site_Youtube_pm
diff -N multimedia/get_flash_videos/patches/patch-lib_FlashVideo_Site_Youtube_pm
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ multimedia/get_flash_videos/patches/patch-lib_FlashVideo_Site_Youtube_pm    
5 Aug 2011 17:04:52 -0000
@@ -0,0 +1,65 @@
+$OpenBSD$
+--- lib/FlashVideo/Site/Youtube.pm.orig        Fri Aug  5 18:00:19 2011
++++ lib/FlashVideo/Site/Youtube.pm     Fri Aug  5 18:00:42 2011
+@@ -133,11 +133,61 @@ sub find_video {
+     } elsif($info{fmt_url_map}) {
+       debug "Using fmt_url_map method from info";
+       return $self->download_fmt_map($prefs, $browser, $title, \%info, 
$info{fmt_url_map});
++    } elsif($info{url_encoded_fmt_stream_map}) {
++      debug "Using url_encoded_fmt_stream_map method from info";
++      return $self->download_url_encoded_fmt_stream_map($prefs, $browser, 
$title, \%info, $info{url_encoded_fmt_stream_map});
+     }
+   }
+ 
+   # Try old get_video method, just incase.
+   return download_get_video($browser, $prefs, $video_id, $title, $t);
++}
++
++sub download_url_encoded_fmt_stream_map {
++  my($self, $prefs, $browser, $title, $info, $fmt_map) = @_;
++
++  my $fmt_url_map = parse_youtube_url_encoded_fmt_stream_map($fmt_map);
++
++  if (!$title and $browser->uri->as_string =~ m'/user/.*?#') {
++    my $video_id = (split /\//, $browser->uri->fragment)[-1];
++
++    my %info = get_youtube_video_info($browser->clone, $video_id);
++
++    $title = $info->{title};
++  }
++
++  my $preferred_quality = $prefs->quality->choose(map { 
$fmt_url_map->{$_->{id}}
++      ? { resolution => $_->{resolution}, url => $fmt_url_map->{$_->{id}} }
++      : () } @formats);
++
++  $browser->allow_redirects;
++
++  return $preferred_quality->{url}, title_to_filename($title, "mp4");
++}
++
++sub parse_youtube_url_encoded_fmt_stream_map {
++  my($raw_map) = @_;;
++
++  my $map = {};
++
++  foreach my $params (split /,/, $raw_map) {
++    
++    my $format = "";
++    my $url = "";
++    
++    foreach my $pair (split /&/, $params) {
++      my ($name, $value) = split /=/, $pair;
++      if ($name eq "itag"){
++        $format = $value;
++      } elsif ($name eq "url") {
++        $url = uri_unescape($value);
++      }
++    }
++    
++    $map->{$format} = $url;
++  }
++  
++  return $map;
+ }
+ 
+ sub download_fmt_map {
Index: www/p5-WWW-YouTube-Download/Makefile
===================================================================
RCS file: /cvs/ports/www/p5-WWW-YouTube-Download/Makefile,v
retrieving revision 1.2
diff -u -p -r1.2 Makefile
--- www/p5-WWW-YouTube-Download/Makefile        31 Jul 2011 18:09:57 -0000      
1.2
+++ www/p5-WWW-YouTube-Download/Makefile        5 Aug 2011 17:04:52 -0000
@@ -3,7 +3,7 @@
 COMMENT =      simple YouTube interface for downloading videos
 
 MODULES =      cpan
-DISTNAME =     WWW-YouTube-Download-0.27
+DISTNAME =     WWW-YouTube-Download-0.29
 CATEGORIES =   www
 
 MAINTAINER =   Mikolaj Kucharski <miko...@kucharski.name>
Index: www/p5-WWW-YouTube-Download/distinfo
===================================================================
RCS file: /cvs/ports/www/p5-WWW-YouTube-Download/distinfo,v
retrieving revision 1.2
diff -u -p -r1.2 distinfo
--- www/p5-WWW-YouTube-Download/distinfo        31 Jul 2011 18:09:57 -0000      
1.2
+++ www/p5-WWW-YouTube-Download/distinfo        5 Aug 2011 17:04:52 -0000
@@ -1,5 +1,5 @@
-MD5 (WWW-YouTube-Download-0.27.tar.gz) = v6mPBdn69BVobk9lhbQCEQ==
-RMD160 (WWW-YouTube-Download-0.27.tar.gz) = KS4KG2t5SlwgDmVSO6m6eztE6O8=
-SHA1 (WWW-YouTube-Download-0.27.tar.gz) = GXaKGt/y+SYlH+bEdhWHrJ8Ozow=
-SHA256 (WWW-YouTube-Download-0.27.tar.gz) = 
QOwsdvSFb2dckA/yt1NRhwyJTbKu3e2OWCu9un4hnns=
-SIZE (WWW-YouTube-Download-0.27.tar.gz) = 31418
+MD5 (WWW-YouTube-Download-0.29.tar.gz) = QH5n2KoEuvuyP6GcoiVK1Q==
+RMD160 (WWW-YouTube-Download-0.29.tar.gz) = oPNEPMKn1GeJmTkXwoyAD2UveRw=
+SHA1 (WWW-YouTube-Download-0.29.tar.gz) = 4QhfjzeiOdBR9XjnVdny17xTEJc=
+SHA256 (WWW-YouTube-Download-0.29.tar.gz) = 
qbGV/imNPfMvO0sLRbFjUmDrL/hIGlZK8S4C+puG2hc=
+SIZE (WWW-YouTube-Download-0.29.tar.gz) = 28753
Index: www/p5-WWW-YouTube-Download/patches/patch-lib_WWW_YouTube_Download_pm
===================================================================
RCS file: www/p5-WWW-YouTube-Download/patches/patch-lib_WWW_YouTube_Download_pm
diff -N www/p5-WWW-YouTube-Download/patches/patch-lib_WWW_YouTube_Download_pm
--- www/p5-WWW-YouTube-Download/patches/patch-lib_WWW_YouTube_Download_pm       
31 Jul 2011 18:09:57 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-$OpenBSD: patch-lib_WWW_YouTube_Download_pm,v 1.1 2011/07/31 18:09:57 landry 
Exp $
-
-- unbreak after recent youtube changes
-- error out when extracting JSON fails
-- support for another url type
-- youtu.be shortener support
-
---- lib/WWW/YouTube/Download.pm.orig   Sun May 29 15:32:20 2011
-+++ lib/WWW/YouTube/Download.pm        Sat Jul 30 22:44:24 2011
-@@ -170,9 +170,17 @@ sub _get_args {
-             $data = JSON->new->utf8(1)->decode($json);
-             last;
-         }
-+        elsif ($_ && /^\s*'PLAYER_CONFIG'\s*:\s*({.*})\s*$/) {
-+            $data = JSON->new->utf8(1)->decode($1);
-+            last;
-+        }
-     }
- 
--    return $data->{args};
-+    if ($data->{args}) {
-+        return $data->{args};
-+    } else {
-+        Carp::croak "failed to extract JSON data.";
-+    }
- }
- 
- sub _parse_fmt_url_map {
-@@ -214,13 +222,16 @@ sub _suffix {
- 
- sub _video_id {
-     my $stuff = shift;
--    if ($stuff =~ m{/.*?[?&;]v=([^&#?=/;]+)}) {
-+    if ($stuff =~ m{/.*?[?&;!]v=([^&#?=/;]+)}) {
-         return $1;
-     }
-     elsif ($stuff =~ m{/(?:e|v|embed)/([^&#?=/;]+)}) {
-         return $1;
-     }
-     elsif ($stuff =~ m{#p/(?:u|search)/\d+/([^&?/]+)}) {
-+        return $1;
-+    }
-+    elsif ($stuff =~ m{youtu.be/([^&#?=/;]+)}) {
-         return $1;
-     }
-     else {
Index: www/p5-WWW-YouTube-Download/patches/patch-t_private_video_id_t
===================================================================
RCS file: www/p5-WWW-YouTube-Download/patches/patch-t_private_video_id_t
diff -N www/p5-WWW-YouTube-Download/patches/patch-t_private_video_id_t
--- www/p5-WWW-YouTube-Download/patches/patch-t_private_video_id_t      31 Jul 
2011 18:09:57 -0000      1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,23 +0,0 @@
-$OpenBSD: patch-t_private_video_id_t,v 1.1 2011/07/31 18:09:57 landry Exp $
-
-- support for another url type
-- youtu.be shortener support
-
---- t/private/video_id.t.orig  Tue Apr 19 17:34:24 2011
-+++ t/private/video_id.t       Sat Jul 30 22:46:10 2011
-@@ -73,5 +73,15 @@ test_video_id(
-     'INsSU8Jnx-4',
- );
- 
-+test_video_id(
-+    'http://www.youtube.com/watch#!v=fqNKwF18cq0',
-+    'fqNKwF18cq0',
-+);
-+
-+test_video_id(
-+    'youtu.be/HyNh3AXegxw',
-+    'HyNh3AXegxw',
-+);
-+
- done_testing;
- 

Reply via email to