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

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

#1 em Ter Jul 02, 2013 12:15 am

hfts315

avatar
Membro
Membro


script em perl para baixar videos do anitube, nova atualizaçao do script, incrementei a sintaxe -a que baixa uma lista de anime q esteja em um arquivo (as url tem q ta uma embaixo da outra), a sintaxe -su na pesquisa com a sintaxe -p salva as url em um arquivo

exemplos:

perl fts.pl -a "animes.txt" -d -f mp4
perl fts.pl -p "naruto" -su

github

Código:
#!/usr/bin/perl
#autor: hacker fts315
#contato: http://www.facebook.com/hacker.fts315
#versao: 1.3
#data: 24/04/2013
#update: 09/05/2013

################################################
#sintaxe:    
#
#      -p procura determinado anime (* nome do anime)
#     -n * numero da index da procura (* index)
#     -u * url do video (* url)
#      -a * varias url em um arquivos (* arquivo)
#     -i info do anime
#     -d baixa o anime
#     -dw baixa o anime pelo wget (necessario o wget)
#     -l mostra o link oculto do video
#     -f * formato so existe dois mp4 e flv (* formato)
#     -o * muda o nome do arquivo de saida (* nome do arquivo)
#     -sp salva a pagina html
#     -su salva as url da sintaxe -p
#     -h ajuda sobre os comandos
############################

use WWW::Mechanize;
use Getopt::Long;
use URI::Escape;

$fts = WWW::Mechanize->new;
GetOptions("u=s"=>\$u,"f=s"=>\$f,"l"=>\$l,"d"=>\$d,"dw"=>\$dw,"h"=>\$h,"i"=>\$i,"sp"=>\$sp,"o=s"=>\$o,"p=s"=>\$p,"n=s"=>\$n,"a=s"=>\$a,"su"=>\$su);

slogan();

if(defined($h))
{
   print "autor: \n\n" .
      "  coder: hacker fts315\n" .
      "  face: www.facebook.com/hacker.fts315\n\n" .
      "sintaxe: \n\n" .
      "  -p * procura determinado anime (* nome do anime)\n" .
      "  -n * numero da index da procura (* index)\n" . 
      "  -u * url do video (* url)\n" .
      "  -a * varias url em um arquivos (* arquivo)\n" .
      "  -i info do anime\n" .
      "  -d baixa o anime\n" .
      "  -dw baixa o anime pelo wget (necessario o wget)\n" .
      "  -l mostra o link oculto do video\n" .
      "  -f * formato so existe dois mp4 e flv (* formato)\n" .
      "  -o * muda o nome do arquivo de saida (* nome do arquivo)\n" .
      "  -sp salva a pagina html\n" .
      "  -su salva as url da sintaxe -p\n" .
      "  -h ajuda sobre os comandos\n\n".
      "exemplos:\n\n".
      "  perl fts.pl -u http://www.anitube.se/video/40680/High-School-DxD-09 -f mp4 -d\n" .
      "  perl fts.pl -u http://www.anitube.se/video/40680/High-School-DxD-09 -f mp4 -l\n" .
      "  perl fts.pl -u http://www.anitube.se/video/40680/High-School-DxD-09 -i\n" .
      "  perl fts.pl -p \"sword art online 04\"\n" .
      "  perl fts.pl -a \"animes.txt\" -f mp4 -d\n\n";
   exit;
}

if(defined($p))
{
   $index = 1;
   $qnt_index_fin = 1;
   if(defined($n))
   {
      $fts->get("http://www.anitube.se/search/". $n . "/?sort=&search_type=videos&search_id=" . uri_escape($p) . "&search_key=");
      $index = $n;
   }
   else
   {
      $fts->get("http://www.anitube.se/search/?search_id=" . uri_escape($p));
   }
   if($fts->content =~ /">Next<\/a>/)
   {
      $url_index = $fts->uri;
      @qnt_index = $fts->content =~ /(\d+)<\/a><\/li>/g;
   }
   $qnt_index_fin = 1;
   foreach (@qnt_index){
      $qnt_index_fin = $_;
   };
   @qnt_video = $fts->content =~ /<span class="moreLink">(.*)<\/span>/;
   print "\nindex: " . $index . " de ". $qnt_index_fin ." (" . $qnt_video[0] . ")\n\n";
   
   @videos = $fts->content =~ /<div class="videoThumb">(.*)<!-- End Video List -->/s;
   @videos_link = $videos[0] =~ /<a(.*)<\/a>/g;
   foreach(@videos_link)
   {
      @videos_link_rec = $_ =~ /href="(.*)">/;
      $video_cont = 0;
      foreach(@videos_link_rec)
      {
         if($_ =~ /title=".*/)
         {
            next;
         }
         $anime_mostrar = $_;
         print $anime_mostrar . "\n\n";
         if(defined($su))
         {
            open(FTS_S,">>" . $p . ".txt");
            print FTS_S $anime_mostrar . "\n";
            close(FTS_S);
         }
      }
   }

   exit;
}

if(defined($a))
{
   open(FTS_ARQ,"<". $a);
   @animes = <FTS_ARQ>;
   print "\nbaixando lista de animes isso pode demorar um pouco \n\n";
   foreach(@animes)
   {
      $url_anime = $_;
      @nome_anime = $url_anime =~ /.*\/(.*)$/;
      if(chomp($url_anime) eq "")
      {
         next;
      }
      else
      {
         print $nome_anime[0];
      }
      $fts->get($url_anime);

      if(defined($sp))
      {
         $fts->save_content($nome_anime[0] . ".html");
      }

      @hack = $fts->content =~ /nuevo\/config.php\?key=(.*)'; var w=/i;
      $lol = "http://www.anitube.se/nuevo/playlist.php?key=" . $hack[0];      
      $fts->get($lol);

      if(defined($f))
      {
         if ($f eq "mp4")
         {
            @anime = $fts->content =~ /<html5>(.*)<\/html5>/;
            $extensao = ".mp4";
         }
         elsif($f eq "flv")
         {
            @anime = $fts->content =~ /<file>(.*)<\/file>/;
            $extensao = ".flv";
         }
         if(defined($d))
         {
            $fts->get($anime[0],":content_file"=>$nome_anime[0]. $extensao);
         }
         elsif(defined($dw))
         {
            $baixar = "wget " . $anime[0] . " -O " . $nome_anime[0] . $extensao;
            system($baixar);
         }
         unless($url_anime eq "")
         {
            print " (completo)";
         }
      }
      print "\n";
   }
   close(FTS_ARQ);
   print "\n\ntodos os animes da lista foram baixados\n\n";
   exit;
}

if(defined($u))
{
   $fts->get($u);
   $host = $fts->uri;
   @nome_anime = $host =~ /.*\/(.*)$/;
   @hack = $fts->content =~ /nuevo\/config.php\?key=(.*)'; var w=/i;
   $lol = "http://www.anitube.se/nuevo/playlist.php?key=" . $hack[0];

   if(defined($sp))
   {
      print "\npagina salva\n\n";
      $fts->save_content($nome_anime[0] . ".html");
   }

   if(defined($i))
   {
      print "\n";
      @inf_nome = $fts->content =~ /<h1 class="mainBoxHeader">(.*)<\/h1>/im;
      @inf_uploader = $fts->content =~ /href="http:\/\/www.anitube.se\/users\/(.*)">/im;
      @inf_adicionado = $fts->content =~ /<p class="viewVideoText">Adicionado.*class="textGlow">(.*)<\/span><\/p>/im;
      @inf_tempo = $fts->content =~ /class="viewVideoText">Dura.*<span class="textGlow">(.*)<\/span><\/p>/im;
      @inf_categoria = $fts->content =~ /href="(http:\/\/www.anitube.se\/categories\/.*)">/im;
      push(@inf_categoria,$inf_categoria[0] =~ /http:\/\/www.anitube.se\/categories\/\d+\/(.*)/);
      @inf_desc1 = $fts->content =~ /<li class="videoDesc">(.*)<\/li>.*<li class="videoRate">.*<div id="voteProcess">/is;
      push(@inf_desc1,$inf_desc1[0] =~ /(\w.*\w)/);
      $fts->get($inf_categoria[0]);
      @inf_desc2 = $fts->content =~ /<p class="catDesc">(.*)<\/p>.*<\/li>.*<\/ul>/ism;
      print "nome: " . $inf_nome[0] . "\n";
      print "categoria: " . $inf_categoria[1] . "\n";
      print "tempo: " . $inf_tempo[0] . "\n";
      print "uploader: " . $inf_uploader[0] . "\n";
      print "adicionado: " . $inf_adicionado[0] . "\n\n";
      print "descricao 1: " . $inf_desc1[1] . "\n\n";
      print "descricao 2: " . $inf_desc2[0] . "\n";
      print "\n";
   }
   $fts->get($lol);

   if(defined($f))
   {
      if ($f eq "mp4")
      {
         @anime = $fts->content =~ /<html5>(.*)<\/html5>/;
         $extensao = ".mp4";
      }
      elsif($f eq "flv")
      {
         @anime = $fts->content =~ /<file>(.*)<\/file>/;
         $extensao = ".flv";
      }
      else
      {
         print "\nformato desconhecido\n\n";
         exit;
      }
      if(defined($l))
      {
         print "\n";
         print "link: " .$anime[0];
         print "\n\n";
      }
      if(defined($d))
      {
         print "\nbaixando o anime isso pode demorar um pouco\n\n";
         if(defined($o))
         {
            $fts->get($anime[0],":content_file"=>$o . $extensao);
         }
         else
         {
            
            $fts->get($anime[0],":content_file"=>$nome_anime[0]. $extensao);
         }
         print "download completo\n\n";
         exit;
      }
      elsif(defined($dw))
      {
         if(defined($o))
         {
            $baixar = "wget " . $anime[0] . " -O " . $o . $extensao;
            
         }
         else
         {
            $baixar = "wget " . $anime[0] . " -O " . $nome_anime[0] . $extensao;
         }
         system($baixar);
         exit;
      }
   }
   exit;
}
else
{
   print "\n\ndigite a sintaxe -h para ver ajuda\n\n";
}

sub slogan
{
   print "============================================\n" .
      "      FTS Download Anitube v1.3\n".
      "============================================\n";
}

tutorial v1.2 mais funciona na 1.3

bom galera esse meu script permite baixar animes no site http://www.anitube.se/, para poder usar ele e necessario o interpretador perl caso esteja usando windows recomendo o active perl no caso do linux ja tem um interpretador na maioria das vezes (caso nao tenha tente um "apt-get install perl" no terminal), nao e necessario o wget mais se quiser baixar ele para poder baixar pelo mesmo ^^, depois de baixar o interpretador copie o script salve com extensao .pl no caso salvei como o nome "fts.pl", depois abra o terminal do seu pc localize o arquivo (para facilitar coloque no desktop (depois digita cd Desktop), depois digite a palavra perl seguida do nome do script e a sintaxe -h para ver as info

Código:
perl fts.pl -h

a sintaxe acima vai mostrar os comandos q pode ser usado no script, vamos baixar um anime esse foi o escolhido *-* (http://www.anitube.se/video/1546/Death-Note--21-Atividade), agora agente usa a sintaxe -u no lugar de -h seguida do link do anime

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade

so isso nao e suficiente para baixar o anime temos q definir o formato dele no caso existe apenas dois mp4 ou flv para agente definir usamos a sintaxe -f e depois colocar para baixar

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -f mp4

para baixar agente pode usar a sintaxe -d ele vai baixar com o proprio modulo, mais se agente quiser baixar pelo wget usamos -dw (tem q ter o wget instalado)

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -f mp4 -d

ou pelo wget

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -f mp4 -dw

para agente escolher o nome do video quando salvar usamos a sintaxe -o seguida do nome

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -f mp4 -d -o "death note - 21"

para agente baixar os videos por outro gerenciador de download basta usar o link oculto do video para conseguir o link basta usar a sintaxe -l no lugar da sintaxe de download

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -f mp4 -l

agente pode ver informaçao do anime (nome,categoria,tempo,uploader, quando foi upado,descriçao) para isso usamos a sintaxe -i

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -i

para agente baixar a pagina do anime usamos a sintaxe -sp

Código:
perl fts.pl -u http://www.anitube.se/video/1546/Death-Note--21-Atividade -sp

se agente quiser procurar determinado anime usamos a sintaxe -p seguido do nome (ou parte dele)

Código:
perl fts.pl -p "cavaleiro do zodiaco"

na sintaxe acima ele vai pesquisar os animes q tem aquele texto no nome, as vezes dependendo existe muitos entao se dividi por partes no caso do exemplo acima deu isso "index: 1 de 149 (Videos 1 - 20 de 2995)" existe 2095 video ele mostra em 20 em 20 para mostrar os proximos usamos a sintaxe -n seguida do numero no caso 2 depois 3

Código:
perl fts.pl -p "cavaleiro do zodiaco" -n 10

bom galera isso e tudo, talvez nas proximas versao eu faça ele baixar os animes usando um arquivo como base ou ele em modo grafico sei la ^^

sugestoes duvidas ---> http://www.facebook.com/hacker.fts315

#2 em Ter Jul 02, 2013 7:07 am

Obrigado Por Compartilhar Com o Atrios Fórum


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

Permisos de este foro

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