SVN: toys/rsget.pl/Video/YouTube

sparky sparky at pld-linux.org
Sun Dec 19 20:00:09 CET 2010


Author: sparky
Date: Sun Dec 19 20:00:08 2010
New Revision: 12000

Modified:
   toys/rsget.pl/Video/YouTube
Log:
- use HTTP HEAD request to get exact file size


Modified: toys/rsget.pl/Video/YouTube
==============================================================================
--- toys/rsget.pl/Video/YouTube	(original)
+++ toys/rsget.pl/Video/YouTube	Sun Dec 19 20:00:08 2010
@@ -76,14 +76,19 @@
 	my $fmtstr = $fmt ? "&fmt=$fmt->[0]" : "";
 	$fmt ||= [ 5, "flv", "vLQ" ];
 
-	my $fname = $name . "." . $fmt->[1];
-	INFO( name => $fname, fmt => $fmt->[0], quality => $fmt->[2] );
+	$-{fname} = $name . "." . $fmt->[1];
 
 	/"fmt_url_map": "(.*?)"/;
 	my %uri = map /(\d+)\|(.*)/, split /,/, $1;
 	my $uri = $uri{ $fmt->[0] };
 	$uri =~ s#\\/#/#g;
+	$-{file_uri} = uri_unescape( $uri );
 
-	DOWNLOAD( uri_unescape( $uri ), fname => $fname );
+	GET( $-{file_uri}, headonly => 1 );
+
+	my ( $len ) = /^Content-Length:\s*(\d+)\r?$/mi;
+	INFO( name => $-{fname}, size => $len );
+
+	DOWNLOAD( $-{file_uri}, fname => $-{fname} );
 
 # vim: filetype=perl:ts=4:sw=4


More information about the pld-cvs-commit mailing list