Descrizione
Dato un url di un video di YouTube, scarica detto video sul proprio pc.
Codice
use LWP;
use Term::ReadKey;
use Term::ANSIColor;
use Win32::Console::ANSI;
&video;
sub video{
print color 'bold red';
print "[!]Inserisci l'url del video da scaricare da YouTube: ";
print color 'reset';
chomp($url=<>);
if($url=~m/(http:\/\/.*?youtube\.com)\/.*?v=(.+)/){
$you= $1;
$code=$2;}
else{
print color "bold red";
print "[!]Non hai immesso un valido indirizzo...\n[!]Riprovare? (y/n)\n";
print color "reset";
chomp($a=<>);
while(1==1){
if($a eq 'y'){
&video; }
elsif($a eq 'n'){
print color "bold red";
print "[!]Alla prossima!\n[!]Premi un tasto per uscire...\n";
print color "reset";
while(not defined ($key = ReadKey(-1))){ }
exit;}else{
print color "bold red";
print "[!]Non hai immesso una valida risposta!\n[!]Riprovare? (y/n)\n";
print color "reset";
chomp($a = <>);}}}
$lwp = LWP::UserAgent->new;
$get = $lwp->get("$you/v/$code")->request->uri;
$get =~ s/.*&t=(.+)/$1/;
open(F,">$code.flv");
binmode(F);
$t1=$t2=time;
print color "bold blue";
print "\n[*]Scaricamento in corso...\n";
print color "reset";
$req = $lwp->request(HTTP::Request->new(
GET => "$you/get_video?video_id=$code&t=$get"),
sub {
($part,$req) = @_;
$part2 = $part2 + length($part);
$time2 = time;
if($time2 > $time1){
if ($req->content_length) {
$leng = $req->content_length;
$ctr = 100*$part2/$leng;
print color "bold green";
printf STDERR "\r[*]%d%%",$ctr;
print color "reset";
$time1= $time2;}}
print F $part;});
close(F);
print color "bold green";
print "\r[!] 100% - File scaricato con successo!\n";
print color "reset";
print color "bold red";
print "[!]Vuoi scaricare un nuovo video? (y/n)\n";
print color "reset";
chomp($a=<>);
while(1==1){
if($a eq 'y'){
&video;}
elsif($a eq 'n'){
print color "bold red";
print "[!]Alla prossima!\n[!]Premi un tasto per uscire...\n";
print color "reset";
while(not defined ($key = ReadKey(-1))){}
exit;}else{
print color "bold red";
print "[!]Non hai immesso una valida risposta!\n[!]Vuoi scaricare un nuovo video? (y/n)\n";
print color "reset";
chomp($a = <>);}}}
0 commenti:
Posta un commento