Tutorial: Descargas los .mp4 de xvideos

  • Autor Autor kanikase
  • Fecha de inicio Fecha de inicio
kanikase

kanikase

Préstamo
Ómicron
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Hola betas, les traigo un nuevo tutorial de descargar, pero esta vez de xvideos XD

Es un script algo sencillo, que utiliza cURL para cambiar el user agent a Android, porque así es la única forma que pude encontrar los .mp4, los que sepan de php lo van a entender muy fácil 😉

Bueno, si se preguntan para que les puede servir, pues no sé para lo que quiera, verlos 😎 o subirlos a alguna otra página o a su página misma.

Para hacerlo que funcione necesitamos un solo archivo, este se llamará index.php, en él pegamos el siguiente código:
PHP:
<?php
// funcion para obtener el titulo del video
function titulo($urlxv) {
	$file = @file_get_contents($urlxv);
	preg_match_all('|<title>(.*)</title>|siU', $file, $match);
	return str_replace(' - XVIDEOS.COM', '', $match[1][0]);
}
// funcion para obtener los enlaces .mp4
function xvideos($urlxv) {
	$urlxv = urldecode($urlxv);
	// obtenemos el titulo del video
	$titulo = titulo($urlxv);
	// configuraos curl
	$curl = curl_init($urlxv);
	curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D)"); // cambia el user agent a Android
	// obtenemos el codigo de fuente
	$source = curl_exec($curl);
	curl_close($curl);
	// obtenemos todo lo que esta dentro de la funcion "mobileReplacePlayerDivTwoQual" de xvideos
	preg_match_all("|mobileReplacePlayerDivTwoQual((.*));|siU", $source, $match);
	// creamos un array de enlaces
	$exp = explode('http://', $match[1][0]);
	// separamos los enlaces con for
	for ($i = 0; $i < count($exp); $i++) {
		// a la url le agregamos http://
		$url[$i] = 'http://'.$exp[$i];
		// quitamos todo hacia adelante desde donde se encuentre ' ,'
		$url[$i] = str_replace(substr($url[$i], strpos($url[$i], "', '")), '', $url[$i]);
		// obtenemos la extension
		$ext[$i] = substr(pathinfo($url[$i])['extension'], 0, 3);
		// si es mp4 mostramos los links
		if ($ext[$i] == 'mp4') {
			// los seperamos en la calidad alta (HQ) y calidad baja (LQ)
			$salida .= (strpos(strtolower($url[$i]),'3gp')>0) ? "<a href='$url[$i]' target='_blank' title='$titulo'>$titulo - LQ</a><br />" : "<a href='$url[$i]' target='_blank' title='$titulo'>$titulo - HQ</a><br />";
		}
	}
	return $salida;
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8">
	<title>Obtener videos de xvideos</title>
</head>
<body>
	<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
		<input type="text" name="url" placeholder="URL xvideos">
		<input type="submit" value="Obtener">
	</form>
	<div><?php
	if (isset($_POST['url'])) {
		$url = urldecode($_POST['url']);
		$datos = xvideos($url) ? xvideos($url) : 'No se encontr&oacute; el video!';
		echo $datos;
	}
	?></div>
</body>
</html>

Y así lo guardamos, no lo explico, ya está comentado en casi todas las líneas para qué es cada una.

Y ya lo suben a su hosting, y ya lo tendrán funcionando, al darle click a un enlace se abrirá el .mp4 en el navegador, para guardar el video dan click derecho -> Guardar enlace como... :

Captura.webp

DEMO

P.D en mi ejemplo funciona con ajax, pero el del tutorial funciona perfecto, ya lo probé 😉

Espero que les sirva, si es así denle Me Agrada 🙂
 
Probado rapidamente, tu codigo falla en esta linea:

// obtenemos la extension
$ext[$i] = substr(pathinfo($url[$i])['extension'], 0, 3);

quizas hice algo mal...
 
Probado rapidamente, tu codigo falla en esta linea:

// obtenemos la extension
$ext[$i] = substr(pathinfo($url[$i])['extension'], 0, 3);

quizas hice algo mal...

Que error te da?
 
Listo, cambie por esto:

$path_parts = pathinfo($url[$i]);
//$ext[$i] = substr(pathinfo($url[$i])['extension'], 0, 3);
$ext[$i] = substr($path_parts['extension'], 0, 3);

y funciono.
Gracias.
 
Ahora lo pruebo, gracias por el aporte compañero, siempre compartes buenos códigos [emoji14]

"write once, run anywhere”
 
gracias por el aporte se ve bueno y me dio ideas habra que probarle
 
Excelente, para descargar algun video que me agrade 😀
 
pero si uno esta registrado en xvideos la pagina permite descargarlos, incluso sale el boton de "descargar"
 
pero si uno esta registrado en xvideos la pagina permite descargarlos, incluso sale el boton de "descargar"

Gabo, ¿eso te lo han contado o lo sabes por experiencia??:welcoming:
 
yo hago eso perfectamente, ya que tengo webs xx con micronichos, por lo que busco videos especificos
 
bueno el script compañero, gracias por compartirlo.
 
Que error te da?



Tengo un problemilla.

Cuando me genera los links .mp4, me genera 2, uno el LQ y OTRO HD

QUiero saber si puede ser, separar-los de variable... osea generar los dos pero pueda poner yo cada uno donde quiera?

Un Saludo y gracias.
 
Última edición:
Tengo un problemilla.

Cuando me genera los links .mp4, me genera 2, uno el LQ y OTRO HD

QUiero saber si puede ser, separar-los de variable... osea generar los dos pero pueda poner yo cada uno donde quiera?

Un Saludo y gracias.

Insertar CODE, HTML o PHP:
<?php
$url = urldecode($_GET['url']);

function titulo($urlxv) { 
    $file = @file_get_contents($urlxv); 
    preg_match_all('|<title>(.*)</title>|siU', $file, $match); 
    return str_replace(' - XVIDEOS.COM', '', $match[1][0]); 
} 
// funcion para obtener los enlaces .mp4 
function xvideos($urlxv) { 
    $urlxv = urldecode($urlxv); 
    // obtenemos el titulo del video 
    $titulo = titulo($urlxv); 
    // configuraos curl 
    $curl = curl_init($urlxv); 
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D)"); // cambia el user agent a Android 
    // obtenemos el codigo de fuente 
    $source = curl_exec($curl); 
    curl_close($curl); 
    // obtenemos todo lo que esta dentro de la funcion "mobileReplacePlayerDivTwoQual" de xvideos 
    preg_match_all("|mobileReplacePlayerDivTwoQual((.*));|siU", $source, $match); 
    // creamos un array de enlaces 
    $exp = explode('http://', $match[1][0]); 
    // separamos los enlaces con for 
    for ($i = 0; $i < count($exp); $i++) { 
        // a la url le agregamos http:// 
        $url[$i] = 'http://'.$exp[$i]; 
        // quitamos todo hacia adelante desde donde se encuentre ' ,' 
        $url[$i] = str_replace(substr($url[$i], strpos($url[$i], "', '")), '', $url[$i]); 
        // obtenemos la extension 
		$path_parts = pathinfo($url[$i]);
        //$ext[$i] = substr(pathinfo($url[$i])['extension'], 0, 3); 
		@$ext[$i] = substr($path_parts['extension'], 0, 3);
        // si es mp4 mostramos los links 		
		if ($ext[$i] == 'mp4') { 
		// los seperamos en la calidad alta (HQ) y calidad baja (LQ) 
		if(strpos(strtolower($url[$i]),'3gp') > 0)
		$lq = "<a href='$url[$i]' target='_blank' title='$titulo'>$titulo - LQ</a>";
		else
		$hd = "<a href='$url[$i]' target='_blank' title='$titulo'>$titulo - HQ</a>"; 
		}
		
    } 
	//RESULTADO
    echo "Descargar video en LQ 3gp --> ".$lq."<br />";
	echo "Descargar video en HQ mp4 --> ".$hd;  
} 
?> 
<body>
<!--MUESTRO RESULTADO-->
<?php 
$datos = xvideos($url); 
echo $datos;  
?>
</body>
 
Tengo un problemilla.

Cuando me genera los links .mp4, me genera 2, uno el LQ y OTRO HD

QUiero saber si puede ser, separar-los de variable... osea generar los dos pero pueda poner yo cada uno donde quiera?

Un Saludo y gracias.

No te funciona lo de [MENTION=3751]tumastervip[/MENTION]?
 
Muy bueno. 😛8: No hay demo?

P.D si se entiende súper bien :stupid1:

De tanto en tanto olvido que soy de los pocos que entiende japonés (asistido por google translate claro, jejejeje)
La cosa es mas o menos asi:

Entrando a esta url:
Insertar CODE, HTML o PHP:
http://api.erodouga-rin.net/thumbnails?url=LINK_XVIDEOS
Donde remplazan el texto LINK_XVIDEOS por la url que les da videos para ver un video ejemplo "http://xvideos.com/video2902392/muchachonas_cachondas" obtendrán un son con una serie de url de imágenes que son vistas previas del video.
Ahora lo interesante, pueden crear un archivo php con este código que no solo levanta las imágenes sino que crea un mosaico listo para publicar en sitios webs XXX. El código es algo así:

Insertar CODE, HTML o PHP:
<?php
$body = "";
if (isset($_POST['url'])) {
    $url = $_POST['url'];
    $json = file_get_contents('http://api.erodouga-rin.net/thumbnails?url='.$url);
    if ($json != false) {
        $obj = json_decode($json, true);
        if (isset($obj['status'], $obj['thumbnails']) && $obj['status'] == "success") {
            $thums = $obj['thumbnails'];
            $max = count($thums);
            $imgDst = "";
            $wid = $hei = $ofsy = 0;
            for ($i = 0; $i < $max; $i++) {
                //$imgurl = $thums[$i];
                //$body .= '<img src="'.$imgurl.'">';
                $imgurl = str_replace('thumbs', 'thumbslll', $thums[$i]);
                $imgSrc = imagecreatefromjpeg($imgurl);
                if ($imgSrc) {
                    if ($imgDst == "") {
                        $wid = imagesx($imgSrc);
                        $hei = imagesy($imgSrc);
                        $imgDst = imagecreatetruecolor($wid, $hei * $max);
                        $white = imagecolorallocate($imgDst, 0xFF, 0xFF, 0xFF);
                        imagefill($imgDst, 0, 0, $white);
                        imagecopy($imgDst, $imgSrc, 0, $ofsy, 0, 0, $wid, $hei);
                        $ofsy += $hei;
                    } else {
                        imagecopy($imgDst, $imgSrc, 0, $ofsy, 0, 0, $wid, $hei);
                        $ofsy += $hei;
                    }
                    imagedestroy($imgSrc);
                }
            }
            if ($imgDst) {
                //imagejpeg($imgDst, 'thums.jpg'); // ファイルとして保存。Parmission設定してれば使える
                ob_start();
                imagejpeg($imgDst);
                $imgData = ob_get_contents();
                ob_end_clean();
                $body .= '<img src="data:image/jpeg;base64,'.base64_encode($imgData).'">';
                imagedestroy($imgDst);
            }
        } else {
            $body .= '<p>No pude conseguir.</p>';
        }
    }
} else {
    $body .= '<p>Por favor, copie y pegue el URL del video.</p>';
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XVIDEOS PREVIEW</title>
</head>
<body>
<form action="index.php" method="POST">
<input type="text" name="url" style="width:500px;" value="">
<input type="submit" value="GENERAR PREVIEW">
<hr/>
<?= $body ?>
</body>
</html>

Este código generara una pagina con un input de texto donde cargaran la url de su video y un botón al que le darán click para que el formulario trabaje.
 
Es que este codigo no es para descargarlos, es para sacar su link en mp4 y luego meterlos a tu web con tu propio reproductor

- - - Actualizado - - -

Algun otro script para sacar videos de pornohub, redtube entre otros? gracias
 
Atrás
Arriba