Extraer Link de un video

  • Autor Autor aex studio
  • Fecha de inicio Fecha de inicio
aex studio

aex studio

Gamma
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola amigos estoy interesado en extraer el link de un video que es M3U8. Pero lo quiero hacer con PHP como saben si uno trae el HTML y traes el src del reproductor será un blob el cual no sirve para extraer el video. Sin embargo si en modo desarrollador abres el apartado de network este te mostrara la ubicación del archivo M3U8 o HLS mi pregunta es como puedo extraerlo usando PHP

1686710681481.webp
 
Hola, puedes intentar usar la extensión cURL en PHP para obtener el HTML de la página y luego usar la función preg_match() para extraer el enlace M3U8. Aquí tienes un ejemplo básico:

PHP:
<?php
function extraerM3U8($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($ch);
    curl_close($ch);

    preg_match('/http.*\.m3u8/', $html, $matches);
    return isset($matches[0]) ? $matches[0] : false;
}

$url = "URL_DEL_SITIO_WEB";
$m3u8 = extraerM3U8($url);
if ($m3u8) {
    echo "Enlace M3U8: " . $m3u8;
} else {
    echo "No se ha encontrado el enlace M3U8";
}
?>

Asegúrate de reemplazar "URL_DEL_SITIO_WEB" con la URL de la página que contiene el vídeo M3U8. Este ejemplo tiene sus limitaciones, pero puede ser un buen punto de partida.
 
Hola, puedes intentar usar la extensión cURL en PHP para obtener el HTML de la página y luego usar la función preg_match() para extraer el enlace M3U8. Aquí tienes un ejemplo básico:

PHP:
<?php
function extraerM3U8($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $html = curl_exec($ch);
    curl_close($ch);

    preg_match('/http.*\.m3u8/', $html, $matches);
    return isset($matches[0]) ? $matches[0] : false;
}

$url = "URL_DEL_SITIO_WEB";
$m3u8 = extraerM3U8($url);
if ($m3u8) {
    echo "Enlace M3U8: " . $m3u8;
} else {
    echo "No se ha encontrado el enlace M3U8";
}
?>

Asegúrate de reemplazar "URL_DEL_SITIO_WEB" con la URL de la página que contiene el vídeo M3U8. Este ejemplo tiene sus limitaciones, pero puede ser un buen punto de partida.
Eso Funcionaria si el src del video no fuera dinámico, fue creado con js por lo que el archivo llamado master.m3u8 debe de mandarse desde js pero yo quiero ver lo que sale el network que sale en las herramientas para desarrollador
 
Eso Funcionaria si el src del video no fuera dinámico, fue creado con js por lo que el archivo llamado master.m3u8 debe de mandarse desde js pero yo quiero ver lo que sale el network que sale en las herramientas para desarrollador
Entiendo, en ese caso, mi solución anterior no funcionará directamente para extraer enlaces dinámicos creados con JavaScript. Una alternativa es utilizar algo como Puppeteer en combinación con Node.js para ejecutar el navegador en modo headless (sin interfaz de usuario). Aquí hay un ejemplo básico de cómo puedes intentarlo:

1. Instala Node.js y Puppeteer ejecutando este comando en la terminal:

Insertar CODE, HTML o PHP:
npm i puppeteer

2. Crea un archivo llamado extraerM3U8.js, pega el siguiente código en él y reemplaza "URL_DEL_SITIO_WEB" con la URL que deseas examinar:

JavaScript:
const puppeteer = require('puppeteer');

async function extraerM3U8(url) {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url);

    const m3u8URL = await page.evaluate(() => {
        // Agrega aquí la lógica para encontrar el enlace M3U8 en la página
        // Por ejemplo, si se encuentra en algún elemento específico, podrías usar `querySelector` y obtener el atributo correspondiente.
    });

    await browser.close();
    return m3u8URL;
}

(async () => {
    const url = 'URL_DEL_SITIO_WEB';
    const m3u8Link = await extraerM3U8(url);
    if (m3u8Link) {
        console.log('Enlace M3U8: ', m3u8Link);
    } else {
        console.log('No se ha encontrado el enlace M3U8');
    }
})();

3. Ejecuta el script de Node.js en la terminal:

Insertar CODE, HTML o PHP:
node extraerM3U8.js

Ten en cuenta que este ejemplo es básico y deberás adaptar la función para extraer el enlace M3U8 según la estructura de la página y cómo se crea el enlace con JavaScript.
 
Entiendo, en ese caso, mi solución anterior no funcionará directamente para extraer enlaces dinámicos creados con JavaScript. Una alternativa es utilizar algo como Puppeteer en combinación con Node.js para ejecutar el navegador en modo headless (sin interfaz de usuario). Aquí hay un ejemplo básico de cómo puedes intentarlo:

1. Instala Node.js y Puppeteer ejecutando este comando en la terminal:

Insertar CODE, HTML o PHP:
npm i puppeteer

2. Crea un archivo llamado extraerM3U8.js, pega el siguiente código en él y reemplaza "URL_DEL_SITIO_WEB" con la URL que deseas examinar:

JavaScript:
const puppeteer = require('puppeteer');

async function extraerM3U8(url) {
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto(url);

    const m3u8URL = await page.evaluate(() => {
        // Agrega aquí la lógica para encontrar el enlace M3U8 en la página
        // Por ejemplo, si se encuentra en algún elemento específico, podrías usar `querySelector` y obtener el atributo correspondiente.
    });

    await browser.close();
    return m3u8URL;
}

(async () => {
    const url = 'URL_DEL_SITIO_WEB';
    const m3u8Link = await extraerM3U8(url);
    if (m3u8Link) {
        console.log('Enlace M3U8: ', m3u8Link);
    } else {
        console.log('No se ha encontrado el enlace M3U8');
    }
})();

3. Ejecuta el script de Node.js en la terminal:

Insertar CODE, HTML o PHP:
node extraerM3U8.js

Ten en cuenta que este ejemplo es básico y deberás adaptar la función para extraer el enlace M3U8 según la estructura de la página y cómo se crea el enlace con JavaScript.
Puede hacerse esto con PHP?
 
Puede hacerse esto con PHP?
Lamento la confusión en mi respuesta anterior. Para hacer esto con PHP, puedes utilizar una herramienta llamada "Puppeteer PHP", que es un puente entre Puppeteer (Node.js) y PHP.

1. Instala Puppeteer PHP y sus dependencias ejecutando:

Bash:
composer require nesk/puphpeteer

Luego, crea un archivo llamado extraerM3U8.php y agrega el siguiente código:

PHP:
<?php
require 'vendor/autoload.php';

use Nesk\Puphpeteer\Puppeteer;
use Nesk\Rialto\Data\JsFunction;

function extraerM3U8($url)
{
    $puppeteer = new Puppeteer();
    $browser = $puppeteer->launch();
    $page = $browser->newPage();
    $page->goto($url);

    $m3u8URL = $page->evaluate(JsFunction::createWithBody("
        // Agrega aquí la lógica para encontrar el enlace M3U8 en la página
        // Por ejemplo, si se encuentra en algún elemento específico, podrías usar `document.querySelector` y obtener el atributo correspondiente.
        
        return ''; // Devuelve el enlace M3U8 aquí
    "));

    $browser->close();
    return $m3u8URL;
}

$url = 'URL_DEL_SITIO_WEB';
$m3u8Link = extraerM3U8($url);

if ($m3u8Link) {
    echo "Enlace M3U8: " . $m3u8Link;
} else {
    echo "No se ha encontrado el enlace M3U8";
}

Reemplaza "URL_DEL_SITIO_WEB" con la URL que deseas examinar y completa la lógica para encontrar el enlace M3U8 en la página.

Ten en cuenta que este enfoque requiere que tu entorno de PHP pueda ejecutar comandos de Node.js. Si estás utilizando un servidor compartido, es posible que no puedas utilizar esta solución. En tales casos, considera crear un API separada con Node.js y Puppeteer y luego llamar a ese API desde tu código PHP.
 
interesante, justo estaba por preguntar lo mismo.
 
Hola amigos estoy interesado en extraer el link de un video que es M3U8. Pero lo quiero hacer con PHP como saben si uno trae el HTML y traes el src del reproductor será un blob el cual no sirve para extraer el video. Sin embargo si en modo desarrollador abres el apartado de network este te mostrara la ubicación del archivo M3U8 o HLS mi pregunta es como puedo extraerlo usando PHP

Ver el archivo adjunto 1034910
LO LOGRASTE ?
 
alguien sabe como reproducir o un reproductor iptv o un reproductor de mkv
 
alguien sabe como reproducir o un reproductor iptv o un reproductor de mkv
Qué tendría que ver un mkv con iptv? Para reproducir MKV en web podes usar PlayerJS como también para IPTV, pero necesitas los enlaces o disponer de los videos para enrutarlos...
 
Cuando te refieres de enrutarlos como es
 
Qué tendría que ver un mkv con iptv? Para reproducir MKV en web podes usar PlayerJS como también para IPTV, pero necesitas los enlaces o disponer de los videos para enrutarlos...
lo que pasa quecon la api de iptv tu puedes mostrar el contenido en una web por ejemplo como una web player pero estoy probando y los archivos mkv no se reproducen , por eso la duda
 
lo que pasa quecon la api de iptv tu puedes mostrar el contenido en una web por ejemplo como una web player pero estoy probando y los archivos mkv no se reproducen , por eso la duda
Si tenes un endpoint tenes que convertirlo y adaptarlo a la necesidad, y más aún cuando tiene string, token, etc... el mkv depende del tipo de reproductor, no todos lo soportan y no es idóneo hacer streaming de mkv ya que claramente no va a funcionar como con reproductores de sistema como VLC
 
Atrás
Arriba