Autor
|
Tema: [Pregunta] Descargar video de facebook usando php (Leído 3,945 veces)
|
Flamer
Desconectado
Mensajes: 1.052
crack, crack y mas crack...
|
hola mi duda es como leer el codigo html de una pagina de facebook para descargar un video....tengo este codigo <html> <head><title>descargar video</title> </head> <body> <?php $url="https://www.facebook.com/CuddleClones/videos/473689233322969/"; //$tap = strpos($code,"twitter:player"); $file = fopen("archivo.txt", "w"); echo "listo "; ?> </body> </html>
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
|
|
|
|
apuromafo CLS
|
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-1576https://github.com/LarbiBekka34/fb-video-dl/blob/master/README.mdentre 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
|
|
|
|
EdePC
|
- 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: <?php $url = "https://www.facebook.com/CuddleClones/videos/473689233322969"; $ch = curl_init($url); $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0"; curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $ua); $html = curl_exec($ch); curl_close($ch); preg_match('#content="(https://video.*?)"#', $html, $matches); echo "URL del vídeo a descargar: $matches[1]"; // Descargar video $url = $matches[1]; $video = fopen("video.mp4", "w"); $ch = curl_init(); curl_setopt($ch, CURLOPT_FILE, $video); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $data = curl_exec($ch); curl_close ($ch); ?>
- 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
Mensajes: 2.399
Turn off the red ligth
|
- 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: <?php $url = "https://www.facebook.com/CuddleClones/videos/473689233322969"; $ch = curl_init($url); $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0"; curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_USERAGENT, $ua); $html = curl_exec($ch); curl_close($ch); preg_match('#content="(https://video.*?)"#', $html, $matches); echo "URL del vídeo a descargar: $matches[1]"; // Descargar video $url = $matches[1]; $video = fopen("video.mp4", "w"); $ch = curl_init(); curl_setopt($ch, CURLOPT_FILE, $video); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $data = curl_exec($ch); curl_close ($ch); ?>
- 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-phpPara realizar este tipo de proyectos de forma consistente se utilizan emuladores de javascript. Mink, BrowserExt, uWebScraperToolkit, 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 < remplaza < entonces si yo quiero hacer una inyección en tu sitio web, en vez de <svg onload="alert()"> cambias el input a <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 entidadesTambié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%3ESi 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
Mensajes: 7
NiacBela
|
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. class Get_video { private $urlFacebook; public $urlVideo; public function Download($url) { $this->urlFacebook = $url; $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0"; preg_match('#content="(https://video.*?)"#', $html, $matches); $this->urlVideo = $matches[1]; return $this->urlVideo; } } $nDown = new Get_video(); $nDown->Download('https://www.facebook.com/CuddleClones/videos/473689233322969');
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 <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
Mensajes: 7
NiacBela
|
haber si ahora si me deja poner todo el codigo jajajaja <?php class Get_video { private $urlFacebook; public $urlVideo; public function Download($url) { $this->urlFacebook = $url; $ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0"; preg_match('#content="(https://video.*?)"#', $html, $matches); $this->urlVideo = $matches[1]; return $this->urlVideo; } } $nDown = new Get_video(); $nDown->Download('https://www.facebook.com/CheerfulLaughEveryDay/videos/506720326775969/?t=2'); echo "<embe src=" . $nDown->urlVideo . " type='video/mp4' height='320'>"; ?>
Siahora si me dejo ajajaja, cambia <embe> a <embed> y listo estaria funcionando... GOOD LUCK... @LebaNiac.
|
|
|
En línea
|
GOOD LUCK... @NiacBela
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Tuto] Cómo pasar un vídeo a música, descargar un vídeo de YouTube, etc...
Multimedia
|
z3nth10n
|
1
|
5,168
|
10 Abril 2013, 18:06 pm
por OmarHack
|
|
|
[Ayuda]Descargar datos de internet usando C/C++
Programación C/C++
|
Funebrer0
|
2
|
2,434
|
13 Diciembre 2014, 04:50 am
por Funebrer0
|
|
|
Descargar una página web en formato .html usando la programación
Programación General
|
AdriánT95
|
6
|
3,428
|
5 Julio 2018, 12:56 pm
por AdriánT95
|
|
|
Cómo descargar vídeos de YouTube, Facebook y otros sitios usando la terminal....
Noticias
|
wolfbcn
|
0
|
1,467
|
6 Julio 2018, 02:03 am
por wolfbcn
|
|
|
Cómo descargar vídeos de YouTube, Facebook y otros sitios usando la terminal ...
Noticias
|
wolfbcn
|
0
|
1,848
|
8 Julio 2019, 02:03 am
por wolfbcn
|
|