Descargar videos de youtube

Iniciado por b2k, 17 Enero 2008, 03:44 AM

0 Miembros y 1 Visitante están viendo este tema.

nabelcc

Para descargar videos de youtube usa http://innovasitio.com/video/ solo buscas el video y le haces click en descargar y listo ...

Freeze.

Yo creo que aca paso algo cuando google compro youtube. Por ejemplo:

Esta es la url a la que se accede a un video:
http://v19.cache.googlevideo.com/get_video?video_id=bgYg-FAZCvE&origin=lax-v16.lax.youtube.com&signature=3CD8F74B6635498726E1BBBCB6ABB28F19401780.6492EE51DD31F9225F5729612E62562724EBAB47&ip=201.243.137.188&ipbits=16&expire=1218342322&key=yt1&sver=2

Como pueden ver ahora es muy diferente la url para bajar videos y creo que todos esos parametros son necesarios para descargar el video.

Parametro Es el ID del video muy fácil de obtener.
Parametro Es el servidor del video EN YOUTUBE.
Parametro Es el servidor del video EN GOOGLE.

Novlucker

 :huh:
De donde se supone que has sacado esa dirección??
En mi caso, los videos, siguen teniendo el mismo tipo de dirección de siempre  :-\

http://www.youtube.com/watch?v=7GRFEiGIsDM

Saludos

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Freeze.

De donde es lo de menos.

Claro que tienen la misma url pero la forma de acceder a ellos es diferente. Antes con un simple:
http://es.youtube.com/get_video?video_id=LUmttENypK8&rel=1&eurl=&iurl=http%3A//img.youtube.com/vi/LUmttENypK8/default.jpg&t=OEgsToPDskKoYbkIuA1SwYe4J8svtLSC.
Se obtenia el video. Pero ahora no, ahora es diferente. Pero el que tu dices no cambia porque eso se maneja por htaccess.

Novlucker

ok, pero me refiero a que el método de obtener los videos sigue siendo el mismo.. en scripting tengo un downloader creado en vbs que implementa el mismo método  :rolleyes:

1)
http://www.youtube.com/watch?v=7GRFEiGIsDM
2)
http://www.youtube.com/watch/v/7GRFEiGIsDM
3)
http://www.youtube.com/swf/l.swf?video_id=7GRFEiGIsDM&rel=1&eurl=&iurl=http%3A//i4.ytimg.com/vi/7GRFEiGIsDM/default.jpg&t=OEgsToPDskLJJzbeYjEul1usVKs2gMUA&use_get_video_info=1
4)
http://www.youtube.com/get_video?video_id=7GRFEiGIsDM&rel=1&eurl=&iurl=http%3A//i4.ytimg.com/vi/7GRFEiGIsDM/default.jpg&t=OEgsToPDskLJJzbeYjEul1usVKs2gMUA&use_get_video_info=1

Y salta la descarga..... en definitiva... el mismo método que en el primer post y el mismo que ha existido siempre

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

seba123neo

ni hace falta saber el servidor del video, con solo el ID ya esta...lo pueden ver en mi programa que hice...
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

Freeze.

Como dije en esos post yo solo creia y saque deducciones a la ligera :P

Tienen razon.

YdoWn

#17
Instala youtube-dl en el servidor, usa shell_exec para obtener los enlaces directos a googlevideo(cuando es youtube), con esos enlaces puedes ofrecerlos en descarga redirigiendo la descarga desde el servidor o abrir en una ventana del navegador pudiéndose descargar desde allí, esto último no funciona para una minoría de vídeos pero se pueden descargar redirigiendo la descarga...

ej...


### $gurl es el enlace youtube, twitter y youtube-dl compatible

##IMPORTANTE pasar FILTER_VALIDATE_URL para evitar inyección de código en shell_exec

$gurl = trim(filter_input(INPUT_POST,"gurl",FILTER_VALIDATE_URL));


$rd = shell_exec("youtube-dl --no-cache-dir -J $gurl");
$json = json_decode($rd);

function object_to_array($obj) {
       $_arr = is_object($obj) ? get_object_vars($obj) : $obj;
       foreach ($_arr as $key => $val) {
               $val = (is_array($val) || is_object($val)) ? object_to_array($val) : $val;
               $arr[$key] = $val;
       }
       return $arr;
}


$RES = object_to_array($json);

##IMprimimos el json a pantalla para ver como manejamos los datos...

print_r($RES);

##Siga Usted

------

obtienes los enlaces y otros datos (titulo,descripcion...) en formato json de youtube y otros sitios, estudiando el formato se pueden luego hacer cosas

redirigir descarga...

//donde $fichero es el enlace ya extraido anteriormente..


$fichero = $link;

$title = preg_replace("/[ \|\/\=·\"\']/si","_",urldecode($title));



if ($fp = @fopen(urldecode($link), 'r')) {


$meta = stream_get_meta_data($fp);


   //  print_r($meta);
     
     //return;
       
       
       foreach($meta["wrapper_data"] as $k => $value){
   
   if(preg_match("/^(Content\-Type\:) ?(audio|video)\/(.+)$/si",$value,$resdata)){
       
       $content_type=$resdata[1]." ".$resdata[2]."/".$resdata[3];
       $title  = $title.".".$resdata[3];
     
   }
   
   else if(preg_match("/^(Content-Length:) ?([0-9]+)$/si",$value,$resdata)){
       
       $length = $resdata[1]." ".$resdata[2];
       
   
     
   } else {
       continue;
   }
   
       }

if($content_type && $length){
   
  if($meta["uri"]){
   
      $url = $meta["uri"];
     
  }
   
   
}

   header('Content-Description: File Transfer');
   header($content_type);
   header('Content-Disposition: attachment; filename="'.$title.'"');
   header('Cache-Control: must-revalidate');
   header('Pragma: public');
   header($length);    
   fpassthru($fp);
} else {
   
    echo "<h1>ERROR</h1>";
    echo "Intenta acceder directamente desde <a href='".urldecode($link)."'>aquí</a>";
    echo "<br>".$url;
}



Código aunque a modo de ejemplo se usa en https://www.dontubes.com



Además youtube-dl, previa instalación, se puede usar desde cualquier aplicación invocándolo a la shell del sistema


ver captura en este hilo https://foro.elhacker.net/foro_libre/se_acabo_por_que_descargar_videos_de_youtube_es_ahora_mas_dificil-t507552.0.html;msg2246997;topicseen#msg2246997

salu2