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;
-