Script para descargar todo dragon ball y dragon ball z en tu servidor

Iniciado por WHK, 19 Noviembre 2011, 20:56 PM

0 Miembros y 2 Visitantes están viendo este tema.

WHK

Estaba viendo dragon ball desde dblatino.com y vi que casi todos los enlaces tienen el mismo formato y visualización y 4shared tiene visualización directa de archivos flv asi que hize un script y estoy descargando todos los archivos  :D

Talves le sirva a alguien si quieren tenerlo en sus sevidores para no tener que andar haciendo streaming

Lo único que hay que hacer es crear un directorio llamado "out" al lado del archivo php y darle permisos de escritura.
El script se ejecuta preferentemente desde la consola

Código (php) [Seleccionar]
<?php
set_time_limit 
(0);
ini_set('memory_limit','16M');

echo 
"\nCargando configuraciones y creando enlaces...\n";

echo 
".";
/* Matriz de enlaces */
$enlaces = array(
array(
'base_url' => 'http://www.dblatino.com/dbz/',
'limite' => 291
),
array(
'base_url' => 'http://www.dblatino.com/db/',
'limite' => 153
)
);

/* Matiz de enlaces compuestos */
foreach($enlaces as $enlace){
$links = array();
for($cuenta 1$cuenta <= $enlace['limite']; $cuenta++){
echo ".";
$links[] = array(
'href' => $enlace['base_url'].(int)$cuenta.'.htm',
'out' => (int)$cuenta.'.flv'
);
$links[] = array(
'href' => $enlace['base_url'].(int)$cuenta.'b.htm',
'out' => (int)$cuenta.'b.flv'
);
}
unset($enlace);
}
unset(
$enlaces);



echo 
"\nProcesando enlaces...\n";
foreach(
$links as $enlace){
echo "Procesando ".$enlace['href']." ...\n";
$buffer file_get_contents($enlace['href']);
/* Es 4shared? */
if(str_replace('4shared.com'''$buffer) != $buffer){
$buffer explode('<embed src="http://www.4shared.com/'$buffer);
$buffer explode('"'$buffer[1]);
$buffer 'http://www.4shared.com/'.$buffer[0];

/* Solicita la url del flv */
echo "    Solicitando enlace real *.flv...\n";
file_get_contents(
$buffer,
false,
stream_context_create(array('http' => array('method' => 'HEAD')))
);

/* Filtra la redirección */
foreach($http_response_header as $header){
$head explode(': '$header);
if(strtolower($head[0]) == 'location'){
$buffer $head[1];
break;
}
unset($head$header);
}

if(substr($buffer014) == 'http://static.'){ /* Es stream? */
$buffer explode('streamer='$buffer);
$buffer explode('.flv'$buffer[1]);
$buffer $buffer[0].'.flv';

/* Obtiene el video */
echo "    Descargando el video...\n";
system('wget '.$buffer.' -O "'.dirname(__file__).'/out/'.$enlace['out'].'"');
if(file_exists(dirname(__file__).'/out/'.$enlace['out']))
echo "    Video descargado y guardado correctamente.\n";
else
echo "    Imposible descargar archivo.\n";
/*
if($buffer = file_get_contents($buffer)){
// Guarda el video
echo "    Guardando...\n";
if(file_put_contents(dirname(__file__).'/out/'.$enlace['out'], $buffer))
echo "    Video descargado y guardado correctamente.\n";
else
echo "    Imposible guardar el archivo.\n";
unset($buffer); // Libera la memoria
}else
echo "    Imposible descargar archivo.\n";
*/
}else
echo "    Imposible pharsear redireccion.\n";
}else
echo "    El enlace no es 4shared.\n";

unset($enlace);
}
unset(
$links);

?>


Preferí usar wget para poder ir viendo el progreso de descarga y evitar sobrecargas.
Si alguien lo quiere hechar a correr en una pc con windows puede adjuntar el wget.exe que por ahi anda en internet.
Enjoy.

EFEX

GITHUB 

s00rk

Lo intente usar, pero no me funciono baje el wget y nada solo me crea los archivos y hasta ahi pero de 0 bytes

WHK


s00rk

En si ningun error, en pantalla me dice que se descargo correctamente y blablabla, pero checo el archivo y me los crea pero todos estan en 0 bytes, coloque el wget que corra en modo administrador desactive el UAC y nada :/


WHK

ese script se ejecuta desde la consola, utiliza wget asi que si no te sale el buffer de wget es porque no encuentra el comando.

Comenta la linea de wget y descomenta las demás lineas donde usa file_get_contents()

Carluís

Desarrollo Web, Blogging, Diseño: http://onsoni.blogspot.com