SVN: toys/rsget.pl/Video/YouTube

sparky sparky at pld-linux.org
Sat Jan 30 23:16:57 CET 2010


Author: sparky
Date: Sat Jan 30 23:16:56 2010
New Revision: 11122

Modified:
   toys/rsget.pl/Video/YouTube
Log:
- added fmt 37 (1080p)


Modified: toys/rsget.pl/Video/YouTube
==============================================================================
--- toys/rsget.pl/Video/YouTube	(original)
+++ toys/rsget.pl/Video/YouTube	Sat Jan 30 23:16:56 2010
@@ -10,13 +10,21 @@
 web: "http://www.youtube.com/"
 uri: qr{youtube\.com/watch\?v=.*}
 slots: max
-status: OK 2009-10-03
+status: OK 2010-01-30
 
 unify:
 	s/#.*//;
 	m{[\?&]v=([-_a-zA-Z0-9]+)(?:&.*?)?$};
 	return "http://www.youtube.com/watch?v=$1" if $1;
 
+pre:
+	my @fmt = (
+		[ 37, "mp4", "1080p" ],
+		[ 22, "mp4", "720p" ],
+		[ 35, "flv", "HQ" ],
+		[ 18, "mp4", "LQ" ],
+	);
+
 start:
 	GET( $-{_uri} );
 
@@ -30,20 +38,21 @@
 	! /"fmt_map"\s*:\s*"(.*?)"/;
 	my %fmts = map { m{(\d+)/}; $1 => $_ } split ",", uri_unescape( $1 );
 
-	my $fmt = "18";
-	$fmt = "35" if $fmts{35};
-	$fmt = "22" if $fmts{22};
-
-	my $ext = "mp4";
-	$ext = "flv" if $fmt eq "35";
+	my $fmt;
+	foreach my $f ( @fmt ) {
+		if ( exists $fmts{ $f->[0] } ) {
+			$fmt = $f;
+			last;
+		}
+	}
 
 	! /"t"\s*:\s*"(.*?)"/;
 	my $t = $1;
 
-	my $fname = $name . "." . $ext;
-	INFO( name => $fname, quality => "fmt$fmt" );
+	my $fname = $name . "." . $fmt->[1];
+	INFO( name => $fname, fmt => $fmt->[0], quality => $fmt->[2] );
 
-	DOWNLOAD( "http://youtube.com/get_video?video_id=$id&t=$t&fmt=$fmt",
+	DOWNLOAD( "http://youtube.com/get_video?video_id=$id&t=$t&fmt=$fmt->[0]",
 		fname => $fname );
 
 # vim: filetype=perl:ts=4:sw=4


More information about the pld-cvs-commit mailing list