seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Você não está conectado. Conecte-se ou registre-se

 » Otaku » Abertura / Musica / Diversos » [source] fts anitube down v1.4 beta

[source] fts anitube down v1.4 beta

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 [source] fts anitube down v1.4 beta em Qui Dez 05, 2013 9:33 pm

Kodo no Kami

avatar
master
master
[Você precisa estar registrado e conectado para ver esta imagem.]

Código:

#!/usr/bin/perl
#coder: kodo no kami (hfts315)
#face: www.facebook.com/hacker.fts315
#forum: endoffile.umforum.net
#greetz: mmxm, f.ramon, suspeito_virtual, jhonydk

use WWW::Mechanize;
use Getopt::Long;

#varaiveis
my $help,$menu,$about,$url,$link,$down,$hd,$info,$wget,$file,$view;
my $slogan = "=====================================\n".
   "    FTS ANITUBE DOWN v1.4 (beta)\n" .
   "=====================================\n\n";
my $semopt = "opcao invalida digite --help ou --menu\n\n";
my $ajuda_string = "--help comando de ajuda\n--menu abre o menu de comandos\n--url * especifica o anime (* url)\n--down baixa determinado anime\n--wget baixa determinado anime pelo wget (necessario wget instalado)\n" .
   "--link exibe os links do anime\n--info mostra inforamacao do anime\n--hd baixa animes em hd (caso tenha)\n--file * manipula uma lista de url em um arquivo (* arquivo)\n--view exibe o arquivo\n--install_wget baixa o wget\n--about mostra informacao do script\n\n";
my $autor = "coder: kodo no kami (hfts315)\nface: www.facebook.com/hacker.fts315\nforum: endoffile.umforum.net\ngreetz: mmxm, f.ramon, suspeito_virtual, jhonydk\n\n";
my $url_winwget = "http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip";
my $linha = "===================================";

GetOptions("help"=>\$help, "menu"=>\$menu, "about"=>\$about, "url=s"=>\$url, "link"=>\$link, "install_wget" =>\$instw, "down"=>\$down,"hd"=>\$hd,"info" =>\$info,"wget"=>\$wget,"file=s"=>\$file,"view"=>\$view);

############
#menu
############
if(defined($menu))
{
   $menu_loop = 1;
   #loop menu principal
   while($menu_loop == 1)
   {
      fts_cls();
      print $slogan;
      print "1 - url (--url)\n2 - arquivo (--file)\n7 - instalar o wget (--install_wget)\n8 - ajuda (--help)\n9 - about (--about)\n0 - sair\n\n> ";
      $menu_opt = <stdin>;
      print "\n";
      
      #sair
      if($menu_opt == 0)
      {
         exit(0);
      }
      #url
      elsif($menu_opt == 1)
      {
         $menu_loop_url = 1;
         while($menu_loop_url == 1)
         {
            fts_cls();
            print $slogan;
            print "digite a url: ";
            $url = <stdin>;
            
            $menu_loop_url2 = 1;
            #loop
            while($menu_loop_url2 == 1){
            fts_cls();
            print $slogan;
            print " url: " . $url . "\n";
            print "\n1 - download (--down)\n2 - download pelo wget (--wget)\n3 - link (--link)\n4 - info (--info)\n9 - nova url\n0 - voltar\n\n> ";
            $url_opt = <stdin>;
            
            #voltar
            if($url_opt == 0)
            {
               $menu_loop_url = 0;
               $menu_loop_url2 = 0;
            }
            #download
            elsif($url_opt == 1)
            {
               $link = fts_links($url);
               print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
               $opt_hd = <stdin>;
               print "\n";
               if($opt_hd == 1)
               {
                  $hd = "1";
               }
               #hd
               if(defined($hd))
               {
                  $arq = fts_link_file($link,1);
               }
               #normal
               else
               {
                  $arq = fts_link_file($link,0);
               }
               $nome = fts_anime_nome($url);
               print "baixando anime, aguarde!!!\n\n";
               fts_download($arq,$nome);
               print "anime baixado com sucesso!!!\n\n";
               fts_pause();
            }
            #wget
            elsif($url_opt == 2)
            {
               $link = fts_links($url);
               print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
               $opt_hd = <stdin>;
               print "\n";
               if($opt_hd == 1)
               {
                  $hd = "1";
               }
               #hd
               if(defined($hd))
               {
                  $arq = fts_link_file($link,1);
               }
               #normal
               else
               {
                  $arq = fts_link_file($link,0);
               }
               $nome = fts_anime_nome($url);
               $cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
               print "baixando anime, aguarde!!!\n\n";
               system($cmd);
               print "anime baixado com sucesso!!!\n\n";
               fts_pause();
            }
            #link
            elsif($url_opt == 3)
            {
               print "\n\nnormal: ";
               $link = fts_links($url);
               print fts_link_file($link,0);
               print "\n\nhd: ";
               $link = fts_links($url);
               print fts_link_file($link,1);
               print "\n\n";
               fts_pause();
            }
            #info
            elsif($url_opt == 4)
            {
               fts_cls();
               print $slogan;
               fts_anime_info($url);
               fts_pause();
            }
            #nova url
            elsif($url_opt == 9)
            {
               $menu_loop_url2 = 0;
            }            
            }
         }
      }
      #file
      elsif($menu_opt == 2)
      {
         fts_cls();
         $menu_loop_file = 1;
         while($menu_loop_file == 1)
         {
            fts_cls();
            print $slogan;
            print "digite o arquivo: ";
            $file = <stdin>;
            open(ARQ,"<" . $file);
            @urls = <ARQ>;
            $urlrem = 0;
            
            $menu_loop_file2 = 1;
            while($menu_loop_file2 == 1)
            {
               fts_cls();
               print $slogan;
               print " arquivo: " . $file . "\n";
               print "1 - download (--down)\n2 - download pelo wget (--wget)\n3 - link (--link)\n4 - info (--info)\n5 - exibir arquivo (--view) \n9 - novo arquivo\n0 - voltar\n\n> ";
               $arq_opt = <stdin>;
               #voltar
               if($arq_opt == 0)
               {
                  $menu_loop_file = 0;
                  $menu_loop_file2 = 0;
               }
               #down
               elsif($arq_opt == 1)
               {
                  print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
                  $opt_hd = <stdin>;
                  print "\n";
                  if($opt_hd == 1)
                  {
                     $hd = "1";
                  }
                  foreach(@urls)
                  {
                     $url = $_;
                     unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
                     {
                        $link = fts_links($url);
                        #HD
                        if(defined($hd))
                        {
                           $arq = fts_link_file($link,1);
                        }
                        #normal
                        else
                        {
                           $arq = fts_link_file($link,0);
                        }
                        $nome = fts_anime_nome($url);
                        print "baixando anime: " . $nome;
                        fts_download($arq,$nome);
                        print " (sucesso!!!) \n\n";
                     }
                     else
                     {
                        if($url =~ /^##/)
                        {
                           $urlrem = !$urlrem;
                        }
                     }
                  }
                  print "\n\ntodos os animes baixado com sucesso\n\n";
                  fts_pause();
               }
               #wget
               elsif($arq_opt == 2)
               {
                  print "\nbaixar em HD [0-nao / 1-sim (--hd)]: ";
                  $opt_hd = <stdin>;
                  print "\n";
                  if($opt_hd == 1)
                  {
                     $hd = "1";
                  }
                  foreach(@urls)
                  {
                     $url = $_;
                     unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
                     {
                        $link = fts_links($url);
                        #HD
                        if(defined($hd))
                        {
                           $arq = fts_link_file($link,1);
                        }
                        #normal
                        else
                        {
                           $arq = fts_link_file($link,0);
                        }
                        $nome = fts_anime_nome($url);
                        print "baixando anime: " . $nome . "\n\n";
                        $cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
                        system($cmd);
                     }
                     else
                     {
                        if($url =~ /^##/)
                        {
                           $urlrem = !$urlrem;
                        }
                     }
                  }
                  print "\n\ntodos os animes baixado com sucesso\n\n";
                  fts_pause();
               }
               #link
               elsif($arq_opt == 3)
               {
                  fts_cls();
                  print $slogan;
                  foreach(@urls)
                  {
                     $url = $_;
                     unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
                     {
                        print "anime: " . fts_anime_nome($url) . "\n\n";
                        print "normal: ";
                        $link = fts_links($url);
                        print fts_link_file($link,0);
                        print "\n\nhd: \n";
                        $link = fts_links($url);
                        print fts_link_file($link,1);
                        print "\n\n";
                        print $linha;
                        print "\n\n";
                     }
                     else
                     {
                        if($url =~ /^##/)
                        {
                           $urlrem = !$urlrem;
                        }
                     }
                  }
                  fts_pause();
               }
               #info
               elsif($arq_opt == 4)
               {
                  fts_cls();
                  print $slogan;
                  foreach(@urls)
                  {
                     $url = $_;
                     unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
                     {
                        $nome = fts_anime_nome($url);
                        print "anime: " . $nome . "\n\n";
                        print "url: " . $url . "\n";
                        fts_anime_info($url);
                        print $linha . "\n\n";
                     }
                     else
                     {
                        if($url =~ /^##/)
                        {
                           $urlrem = !$urlrem;
                        }
                     }
                  }
                  fts_pause();
               }   
               #view
               elsif($arq_opt == 5)
               {
                  fts_cls();
                  print $slogan;
                  fts_file_view($file);
                  fts_pause();
               }
               #novo arquivo
               elsif($arq_opt == 9)
               {
                  $menu_loop_file2 = 0;
               }
            }
         }
      }
      #instala o wget
      elsif($menu_opt == 7)
      {
         fts_cls();
         print $slogan;
         fts_install_wget($url_winwget);
         fts_pause();
      }
      #ajuda
      elsif($menu_opt ==
      {
         fts_cls();
         print $slogan;
         print $ajuda_string;
         fts_pause();
      }
      #about
      elsif($menu_opt == 9)
      {
         fts_cls();
         print $slogan;
         print "\n" . $autor;
         fts_pause();
      }
      #opcao invalida
      else
      {
         print "essa opcao e invalida tente novamente\n\n";
         fts_pause();
      }
   }
   exit(0);
}
##############
#comando
##############
else
{
   #ajuda
   if(defined($help))
   {
      print $slogan;
      print $ajuda_string;
      exit(0);
   }
   #about
   if(defined($about))
   {
      print $slogan;
      print $autor;
      exit(0);
   }
   #url
   elsif(defined($url))
   {
      fts_anime_nome($url);
      #link
      if(defined($link))
      {
         print $slogan;
         print "normal: \n";
         $link = fts_links($url);
         print fts_link_file($link,0);
         print "\n\nhd: \n";
         $link = fts_links($url);
         print fts_link_file($link,1);
      }
      #down
      elsif(defined($down))
      {
         print $slogan;
         $link = fts_links($url);
         #HD
         if(defined($hd))
         {
            $arq = fts_link_file($link,1);
         }
         #normal
         else
         {
            $arq = fts_link_file($link,0);
         }
         $nome = fts_anime_nome($url);
         print "baixando anime, aguarde!!!\n\n";
         fts_download($arq,$nome);
         print "anime baixado com sucesso!!!\n\n";
         exit(0);
      }
      #wget
      elsif(defined($wget))
      {
         print $slogan;
         $link = fts_links($url);
         #HD
         if(defined($hd))
         {
            $arq = fts_link_file($link,1);
         }
         #normal
         else
         {
            $arq = fts_link_file($link,0);
         }
         $nome = fts_anime_nome($url);
         $cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
         print "baixando anime, aguarde!!!\n\n";
         system($cmd);
         print "anime baixado com sucesso!!!\n\n";
         exit(0);
      }      
      #info
      elsif(defined($info))
      {
         print $slogan;
         fts_anime_info($url);
         exit(0);
      }
   }
   #file
   elsif(defined($file))
   {
      open(ARQ,"<" . $file);
      @urls = <ARQ>;
      $urlrem = 0;
      
      #link
      if(defined($link))
      {
         print $slogan;
         foreach(@urls)
         {
            $url = $_;
            unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
            {
               print "anime: " . fts_anime_nome($url) . "\n\n";
               print "normal: ";
               $link = fts_links($url);
               print fts_link_file($link,0);
               print "\n\nhd: \n";
               $link = fts_links($url);
               print fts_link_file($link,1);
               print "\n\n";
               print $linha;
               print "\n\n";
            }
            else
            {
               if($url =~ /^##/)
               {
                  $urlrem = !$urlrem;
               }
            }
         }
         exit(0);
      }
      #down
      elsif(defined($down))
      {
         print $slogan;
         foreach(@urls)
         {
            $url = $_;
            unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
            {
               $link = fts_links($url);
               #HD
               if(defined($hd))
               {
                  $arq = fts_link_file($link,1);
               }
               #normal
               else
               {
                  $arq = fts_link_file($link,0);
               }
               $nome = fts_anime_nome($url);
               print "baixando anime: " . $nome;
               fts_download($arq,$nome);
               print " (sucesso!!!) \n\n";
            }
            else
            {
               if($url =~ /^##/)
               {
                  $urlrem = !$urlrem;
               }
            }
         }
         exit(0);
      }
      #wget
      elsif(defined($wget))
      {
         print $slogan;
         foreach(@urls)
         {
            $url = $_;
            unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
            {
               $link = fts_links($url);
               #HD
               if(defined($hd))
               {
                  $arq = fts_link_file($link,1);
               }
               #normal
               else
               {
                  $arq = fts_link_file($link,0);
               }
               $nome = fts_anime_nome($url);
               $cmd = "wget \"" . $arq . "\" -O " . "\"" . $nome . "\" -c";
               print "baixando anime: " . $nome . "\n\n";
               system($cmd);
            }
            else
            {
               if($url =~ /^##/)
               {
                  $urlrem = !$urlrem;
               }
            }
         }
         exit(0);
      }
      #info
      elsif(defined($info))
      {
         print $slogan;
         foreach(@urls)
         {
            $url = $_;
            unless($url eq "" || $url =~ /^#/ || $url eq "\n" || $urlrem)
            {
               $nome = fts_anime_nome($url);
               print "anime: " . $nome . "\n\n";
               print "url: " . $url . "\n";
               fts_anime_info($url);
               print $linha . "\n\n";
            }
            else
            {
               if($url =~ /^##/)
               {
                  $urlrem = !$urlrem;
               }
            }
         }
         exit(0);
      }
      #exibe o arquivo
      elsif(defined($view))
      {
         print $slogan;
         fts_file_view($file);
         exit(0);
      }
      close(ARQ);
      exit(0);
   }
   #instala o wget
   elsif(defined($instw))
   {
      print $slogan;
      fts_install_wget($url_winwget);
      exit(0);
   }
   
   #opção invalida
   else
   {
      print $slogan;
      print $semopt;
      fts_anime_info("http://www.anitube.se/video/5444/HighSchool-of-the-Dead-02--CAOn");
      exit(0);
   }
}

#############
#função
#############

#função pausa o terminal
sub fts_pause
{
   print "aperte enter para continuar!!!\n\n";
   <stdin>;
}

#função limpa tela
sub fts_cls
{
   #win
   if($^O eq "MSWin32" || $^O eq "MSWin64")
   {
      system("cls");
   }
   #linux
   else
   {
      system("clear");
   }
}

#função retorna o arquivo xml q ta os links
sub fts_links
{
   $link_mecha = WWW::Mechanize->new;
   $link_mecha->get($_[0]);
   $link_content = $link_mecha->content;
   @reg_content = $link_content =~ /var cnf='(.*)'; var w='/;
   return $reg_content[0];
}

#função retorna o link de um arquivo
sub fts_link_file
{
   $link_mecha = WWW::Mechanize->new;
   $link_mecha->get($_[0]);
   $link_content = $link_mecha->content;
   #normal
   if($_[1] == 0)
   {
      @reg_content = $link_content =~ /<file>(.*)<\/file>/;
      return $reg_content[0];
   }
   #HD
   elsif($_[1] == 1)
   {
      @reg_content = $link_content =~ /<filehd>(.*)<\/filehd>/;
      return $reg_content[0];
   }
   return 0;
}

#função para instala o wget
sub fts_install_wget
{
   #win
   if($^O eq "MSWin32" || $^O eq "MSWin64")
   {
      print "baixando o wget, aguarde...\n\n";
      $wget_mechanize = WWW::Mechanize->new;
      $wget_mechanize->get($_[0],":content_file" => "wget.zip");
      print "o wget foi baixado com sucesso\n\ninstalacao:  extraia ele e coloque o executavel \"wget\" que esta dentro da pasta bin, coloque ele na pasta \"?:\\windows\\system32\" para poder usar ele livremente pelo terminal, ou deixe ele sempre junto ao script para o mesmo poder baixar por ele\n\n";
      print "dica: uma das vantagens do wget que voce pode ver o tempo que falta para baixar determindo arquivo e se a internet cair voce pode voltar para aquela parte onde estava baixando, outra vantagem que voce poderia baixar qualquer arquivo direto com wget ele e um dos melhores gerenciador de download por linha de comando, se voce coloco ele na pasta system32 voce pode abrir o terminal e digitar wget da um espaco seguido do link do arquivo a ser baixado\n\n"
   }
   #linux
   else
   {
      system("sudo apt-get install wget"); #pelo aptget
      #system("yum install wget");
   }
}

#função para baixar o arquivo
sub fts_download
{
   $down_mechanize = WWW::Mechanize->new;
   $arq_salvo = $_[1];
   $down_mechanize->get($_[0],":content_file" => $arq_salvo);
}

#função retorna o nome do anime
sub fts_anime_nome
{
   @nome = $_[0]  =~ /www.anitube.se\/video\/\d+\/(.*)/;
   return $nome[0] . ".mp4";
}

#função retorna o nome do anime
sub fts_anime_info
{
   $info_mechanize = WWW::Mechanize->new;
   $cat_mechanize = WWW::Mechanize->new;
   $info_mechanize->get($_[0]);
   
   #uploader
   @reg_content = $info_mechanize->content =~ /<span class="moreLink"><a href="http:\/\/www.anitube.se\/users\/(.*)">.*<\/a><\/span>/;
   print "Uploader: " . $reg_content[0] . "\n\n";
   
   #data
   @reg_content = $info_mechanize->content =~ /class="textGlow">(\d+-\d+-\d+)<\/span><\/p>/;
   print "Data: " . $reg_content[0] . "\n\n";
   
   #duração
   @reg_content = $info_mechanize->content =~ /ao: <span class="textGlow">(.*)<\/span><\/p>/;
   print "Duracao: " . $reg_content[0] . "\n\n";
   
   #votos
   @reg_content = $info_mechanize->content =~ /<li class="videoRate">.*\((\d+) Votos\) <img src='/s;
   print "Votos: " . $reg_content[0] . "\n\n";
   
   #categoria
   @reg_content = $info_mechanize->content =~ /<p class="viewVideoTags">Categoria:.*<a href="http:\/\/www.anitube.se\/categories\/\d+\/.*">(.*)<\/a>.*<\/p>.*<\/li>/si;
   @reg_content_catlink = $info_mechanize->content =~ /<p class="viewVideoTags">Categoria:.*<a href="(http:\/\/www.anitube.se\/categories\/\d+\/.*)">.*<\/a>.*<\/p>.*<\/li>/si;
   print "Categoria: " . $reg_content[0] . "\n\n";
   print "Categoria (link): " . $reg_content_catlink[0] . "\n\n";
   $cat_mechanize->get($reg_content_catlink[0]);
   @reg_content_catdesc = $cat_mechanize->content =~ /<meta name="description" content="(.*)." \/>.*<meta name="keywords" content="/s;
   
   #descrição
   @reg_content = $info_mechanize->content =~ /<li class="videoDesc">(.*)<\/li>.*<li class="videoRate">.*<div id="voteProcess">/s;
   @reg_content = $reg_content[0] =~ /^\s+(.*)/;
   print "Descricao: " . $reg_content[0] . "\n\n";
   
   #descrição categoria
   print "Descricao (categoria): " . $reg_content_catdesc[0] . "\n\n";
}

#função exibe o arquivo
sub fts_file_view
{
   open(ARQ_EXIB,"<" . $_[0]);
   @ARQ_EX = <ARQ_EXIB>;
   foreach(@ARQ_EX)
   {
      print $_;
   }
   close(ARQ_EXIB);
   print "\n\n";
}
[Você precisa estar registrado e conectado para ver este link.]

bom galera eu refiz o script do 0 devido a versao 1.3 nao funcionar mais, retirei algumas coisas e adicionei outras, um exemplo no anterior para baixar era necessario a sintaxe -u seguido da url a sintaxe -f seguido do formato e a sintaxe -d nesse nao é necessario o formato e as sintaxe sao --url e --down no lugar de -u e -d

Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --down
tambem pode ser baixado videos em formato hd caso tenha ele upado, para isso usa a sintaxe --hd

Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --down --hd
para ver os links usamos a sintaxe --link, isso permite saber se o video tem em formato hd

Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --link
para mostrar informação do video usamos a sintaxe --info

Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --info
para baixar uma lista de animes de um arquivo usamos a sintaxe --file seguido do arquivo e depois as mesmas sintaxe usado anteriomente (os links dentro do arquivo deve ficar um embaixo do outro e pode usar # para comentar e ## para comentar mais de uma linha)

Código:
perl anitube.pl --file anime.txt --down
com a sintaxe --view podemos ver o conteudo do arquivo

Código:
perl anitube.pl --file anime.txt --view
para baixar o wget para poder baixar por ele usamos a sintaxe --install_wget, depois extraia e coloque o executavel wget que fica na pasta bbin coloque ele na pasta c:\windows\system32

Código:
perl anitube.pl --install_wget
a vantagem de baixar pelo wget que se o download para ele continua da onde paro, para baixar por ele usamos a sintaxe --wget no lugar de --down

Código:
perl anitube.pl --url "http://www.anitube.se/video/67275/Naruto-Shippuuden-341" --wget
a ultima sintaxe é a --menu ela abre um menu que permite escolher as opção ao inves de ficar digitando

Código:
perl anitube.pl --menu
bom galera esse tutorial nao ta detalhado devido a versao do script ainda ser a beta quando eu fizer o script completo vou fazer um outro tuto melhor e o script com mais opção

by kodo no kami


_________________ASSINATURA_________________
[Você precisa estar registrado e conectado para ver esta imagem.]
[Você precisa estar registrado e conectado para ver esta imagem.]

Contato:
Spoiler:

Contato:
Facebook: [Você precisa estar registrado e conectado para ver este link.]
Skype: hackerfts315
http://endoffile.umforum.net

2 Re: [source] fts anitube down v1.4 beta em Seg Dez 16, 2013 9:26 pm

yer123

avatar
avançado
avançado
Cara, muito maneiro *-* vai me ajudar muito ... seria interessante para v2.0, colocar opcao de renomear o arquivo ja direto, e de salvar em tal diretorio.. Ficou show!


_________________ASSINATURA_________________


"Não quero ser só mais um." - EU

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum