elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Pregunta] Descargar video de facebook usando php
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Pregunta] Descargar video de facebook usando php  (Leído 3,945 veces)
Flamer


Desconectado Desconectado

Mensajes: 1.052


crack, crack y mas crack...


Ver Perfil WWW
[Pregunta] Descargar video de facebook usando php
« en: 15 Febrero 2020, 03:15 am »

hola mi duda es como leer el codigo html de una pagina de facebook para descargar un video....tengo este codigo

Código
  1. <html>
  2. <head><title>descargar video</title>
  3. </head>
  4. <body>
  5. <?php
  6. $url="https://www.facebook.com/CuddleClones/videos/473689233322969/";
  7. $code = file_get_contents($url);
  8.  
  9. //$tap = strpos($code,"twitter:player");
  10. $file = fopen("archivo.txt", "w");
  11. fwrite($file,$code);
  12. fclose($file);
  13.  
  14. echo "listo  ";
  15.  
  16. ?>
  17. </body>
  18. </html>
  19.  

pero no lee el código que yo espero....creo que facebook se protege de esto no se

saludos

Mod: Temas sobre PHP van al subforo de PHP.


« Última modificación: 26 Febrero 2020, 13:20 pm por #!drvy » En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

apuromafo CLS


Desconectado Desconectado

Mensajes: 1.441



Ver Perfil WWW
Re: Ayuda---descargar video de facebook usando php
« Respuesta #1 en: 15 Febrero 2020, 07:53 am »

ese codigo ejecuta codigo en html y php bajando información de la pagina, no hay interacción del componente cdn o cache que usa facebook

sugerencias mas viables, buscar un gestor de descargas online, hay muchos, bajarlo el link como hd o sd, o bien usar tools como idm, o bien usar gestores de descarga en un lenguaje de programación como python, por cierto facebook usa sdk, asi que hay que respetar el protocolo,no es llegar y bajar de la pagina

un ejemplo seria
https://pythontips.com/2018/04/23/reverse-engineering-facebook-video/#more-1576
https://github.com/LarbiBekka34/fb-video-dl/blob/master/README.md
entre otros

asi que si logras ver de la pagina que bajas, luego debes extraer todos los links de la pagina que contengan ejemplo mp4

Saludos Apuromafo



En línea

Apuromafo
Flamer


Desconectado Desconectado

Mensajes: 1.052


crack, crack y mas crack...


Ver Perfil WWW
Re: Ayuda---descargar video de facebook usando php
« Respuesta #2 en: 15 Febrero 2020, 17:03 pm »

hice un tutorial de como hacerlo en powershell y en vbscript.....ahora quiero hacerlo en php

pero al querer leer el código html de la pagina de facebook donde se encuentra el vídeo no lee lo que yo espero


aqui te dejo el link para que mires como lo hago

https://elblogdeflamer.blogspot.com/2019/12/descargar-video-de-facebook-usando.html


En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.165



Ver Perfil
Re: Ayuda---descargar video de facebook usando php
« Respuesta #3 en: 23 Febrero 2020, 22:14 pm »

- Ufff, vaya que ha costado, he estado probando funcionalidad de cURL en PHP ya que yo siempre lo utilicé en .exe independiente XD.

- De momento me funciona lo siguiente:

Código
  1. <?php
  2.  
  3.  $url = "https://www.facebook.com/CuddleClones/videos/473689233322969";
  4.  $ch = curl_init($url);
  5.  $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0";
  6.  
  7.  curl_setopt($ch, CURLOPT_HEADER, false);
  8.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  9.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  10.  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  11.  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  12.  curl_setopt($ch, CURLOPT_USERAGENT, $ua);
  13.  
  14.  $html = curl_exec($ch);
  15.  curl_close($ch);
  16.  
  17.  preg_match('#content="(https://video.*?)"#', $html, $matches);
  18.  echo "URL del vídeo a descargar: $matches[1]";
  19.  
  20.  // Descargar video
  21.  $url = $matches[1];
  22.  $video = fopen("video.mp4", "w");
  23.  $ch = curl_init();
  24.  curl_setopt($ch, CURLOPT_URL, html_entity_decode($url));
  25.  curl_setopt($ch, CURLOPT_FILE, $video);
  26.  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  27.  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  28.  $data = curl_exec($ch);
  29.  curl_close ($ch);
  30.  fclose($video);
  31.  
  32. ?>

- Tuve que agregarle un UserAgent para Facebook no me rechace diciendo que mi navegador no es compatible. Luego también un html_entity_decode para que no malinterprete la url (esto no lo capto bien x_x)

Referencias: https://stackoverflow.com/questions/52016753/save-image-from-url-with-curl-and-file-put-contents-php
En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.399


Turn off the red ligth


Ver Perfil WWW
Re: Ayuda---descargar video de facebook usando php
« Respuesta #4 en: 24 Febrero 2020, 00:11 am »

- Ufff, vaya que ha costado, he estado probando funcionalidad de cURL en PHP ya que yo siempre lo utilicé en .exe independiente XD.

- De momento me funciona lo siguiente:

Código
  1. <?php
  2.  
  3.  $url = "https://www.facebook.com/CuddleClones/videos/473689233322969";
  4.  $ch = curl_init($url);
  5.  $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0";
  6.  
  7.  curl_setopt($ch, CURLOPT_HEADER, false);
  8.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  9.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  10.  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  11.  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  12.  curl_setopt($ch, CURLOPT_USERAGENT, $ua);
  13.  
  14.  $html = curl_exec($ch);
  15.  curl_close($ch);
  16.  
  17.  preg_match('#content="(https://video.*?)"#', $html, $matches);
  18.  echo "URL del vídeo a descargar: $matches[1]";
  19.  
  20.  // Descargar video
  21.  $url = $matches[1];
  22.  $video = fopen("video.mp4", "w");
  23.  $ch = curl_init();
  24.  curl_setopt($ch, CURLOPT_URL, html_entity_decode($url));
  25.  curl_setopt($ch, CURLOPT_FILE, $video);
  26.  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  27.  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  28.  $data = curl_exec($ch);
  29.  curl_close ($ch);
  30.  fclose($video);
  31.  
  32. ?>

- Tuve que agregarle un UserAgent para Facebook no me rechace diciendo que mi navegador no es compatible. Luego también un html_entity_decode para que no malinterprete la url (esto no lo capto bien x_x)

Referencias: https://stackoverflow.com/questions/52016753/save-image-from-url-with-curl-and-file-put-contents-php
Para realizar este tipo de proyectos de forma consistente se utilizan emuladores de javascript.
Mink, BrowserExtuWebScraperToolkit, Symfony Panther ...

Las entidades no tienen nada que ver con la url. En todo caso necesitarás URI encode o URI decode.
Las entidades son combinaciones de símbolos que remplazan caracteres para que no sean interpretados. Por ejemplo &lt; remplaza < entonces si yo quiero hacer una inyección en tu sitio web, en vez de <svg onload="alert()"> cambias el input a &lt;svg onload="alert()"> por lo que no se interpreta el código y puedes ver el texto. En mi blog tengo varios programas que usan entidades de distinta formas. Para evitar inyecciones en un validador de contraseñas, para mostrar código fuente sin que se interprete, o para un generador de entidades.
Generador online de entidades


También te dejo un ejemplo de una url codificada por si no queda claro. No tiene que ver con entidades. google.com/search?q=%3C%73%76%67%20%6F%6E%6C%6F%61%64%3D%63%6F%6E%66%69%72%6D%28%29%3E
Si la pones en la barra de direcciones del navegador, google te la decodifica.
En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

NiacBela

Desconectado Desconectado

Mensajes: 7


NiacBela


Ver Perfil
Re: [Pregunta] Descargar video de facebook usando php
« Respuesta #5 en: 3 Abril 2020, 05:43 am »

jajajaja. Me acaban de regañar por algo que voy a volver a hacer...
¿Porque no dan las respuestas directas si son tan genios? jajajajaja.
Hey amigo soy LebaNiac y aqui esta tu respuesta. Utilice el script de un buen amigo que respondio pero le faltaban unos ajustes en el codigo. aqui te lo comparto funcionando al 100%. Este codigo genera una vista previa del video con opciones de descarga.

Código
  1. class Get_video {
  2.  
  3.    private $urlFacebook;
  4.    public $urlVideo;
  5.  
  6.    public function Download($url) {
  7.        $this->urlFacebook = $url;
  8.        $ch = curl_init($url);
  9.        $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0";
  10.        curl_setopt($ch, CURLOPT_HEADER, false);
  11.        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  12.        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  13.        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  14.        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  15.        curl_setopt($ch, CURLOPT_USERAGENT, $ua);
  16.  
  17.        $html = curl_exec($ch);
  18.        curl_close($ch);
  19.  
  20.        preg_match('#content="(https://video.*?)"#', $html, $matches);
  21.        $this->urlVideo = $matches[1];
  22.        return $this->urlVideo;
  23.    }
  24.  
  25. }
  26. $nDown = new Get_video();
  27. $nDown->Download('https://www.facebook.com/CuddleClones/videos/473689233322969');
  28.  

 Este código retorna una variable publica con una URL que contiene el archivo MP4 que puedes colocar en un archivo HTML en la etiqueta
Código
  1. <embed>
que genera una vista previa del vídeo con opciones de descarga.

Si quieres mas información del código funcionando, contactarme ya que la etiqueta EMBED es bloqueada en este foto.

GOOD LUCK... @LebaNiac... ;-) ;-) ;-) ;-)
En línea

GOOD LUCK... @NiacBela
NiacBela

Desconectado Desconectado

Mensajes: 7


NiacBela


Ver Perfil
Re: [Pregunta] Descargar video de facebook usando php
« Respuesta #6 en: 3 Abril 2020, 05:59 am »

haber si ahora si me deja poner todo el codigo jajajaja
Código
  1. <?php
  2.  
  3. class Get_video {
  4.  
  5.    private $urlFacebook;
  6.    public $urlVideo;
  7.  
  8.    public function Download($url) {
  9.        $this->urlFacebook = $url;
  10.        $ch = curl_init($url);
  11.        $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0";
  12.        curl_setopt($ch, CURLOPT_HEADER, false);
  13.        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  14.        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  15.        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  16.        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  17.        curl_setopt($ch, CURLOPT_USERAGENT, $ua);
  18.  
  19.        $html = curl_exec($ch);
  20.        curl_close($ch);
  21.  
  22.        preg_match('#content="(https://video.*?)"#', $html, $matches);
  23.        $this->urlVideo = $matches[1];
  24.        return $this->urlVideo;
  25.    }
  26.  
  27. }
  28.  
  29. $nDown = new Get_video();
  30. $nDown->Download('https://www.facebook.com/CheerfulLaughEveryDay/videos/506720326775969/?t=2');
  31. echo "<embe src=" . $nDown->urlVideo . " type='video/mp4' height='320'>";
  32. ?>
  33.  

Siahora si me dejo ajajaja, cambia <embe> a <embed> y listo estaria funcionando...

GOOD LUCK... @LebaNiac. ;-) ;-) ;-) ;-) ;-)
En línea

GOOD LUCK... @NiacBela
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines