Live Stream 403 Forbidden

  • Autor Autor Torronf
  • Fecha de inicio Fecha de inicio
T

Torronf

Curioso
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola Programo hace un tiempo en PHP para la captura de IPTV con un buen margen de exito pero en ocaciones me he topado con el 403 Forbidden porque el server no crea la confianza que te permite dar play a un video. He tratado varias vias, aqui le pongo un ejemplo sencillo para ver si entre la experiencia de todos vemos la vuelta al tema.

Para este ejemplo usare esta direccion la cual en un Browser Normal emite una señal sin problema pero a la hora de llevar esta señal a un player local sale el 403.
Enlace eliminado

<?php
$server2 = "http://{$_SERVER['HTTP_HOST']}{$_SERVER['PHP_SELF']}";
$url='https://ul.cdn946.net:8443/hls/le870ahdxekxml.m3u8?s=ZTFdRwPOHSAh4RnQl7BJkQ&e=1594403725';


$opts = array('
http' =>
array(
'header' =>
'Connection: keep-alive',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
'Accept: */*',
'Origin: Enlace eliminado',
'Sec-Fetch-Site: cross-site',
'Sec-Fetch-Mode: cors',
'Sec-Fetch-Dest: empty',
'Referer: Enlace eliminado',
'Accept-Language: es-419,es;q=0.9,en;q=0.8,id;q=0.7',
'If-None-Match: "5f08584a-3a9"',
'If-Modified-Since: Fri, 10 Jul 2020 12:00:10 GMT'
),
'ssl' =>
array(
'verify_peer' => false,
'verify_peer_name' => false
)
);

$context = stream_context_create($opts);


$html = fopen($url,"rb", false, $context); //get the html returned from the following url

if (FALSE === $html) {
exit("Failed to open stream to URL");
}

$contents = '';

while (!feof($html)) {
$contents .= fread($html, 8192);
}
$part = explode(chr(10), $contents);
for ($i = 0; $i < count($part) - 1; $i++) {
if (strpos($part[$i], '#') !== false) {
echo $part[$i] . chr(10);
} else {
echo $server2."?ts=Enlace eliminado".($part[$i]).PHP_EOL;
}
}
fclose($html);

?>
 
Failed to open stream to URL
 
Se cayo ese enlace aqui les dejo otro mas simple pero operando. Puedes repdroducir perfectamente en cualquier Browser, pero no con el PHP.
<?php
$url='https://ul.cdn946.net:8443/hls/h24146.m3u8?s=AK1YOqRcpTLtDbDnqBXjJg&e=1597084287';
$baseurl=parse_url($url, PHP_URL_HOST);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_TIMEOUT,20);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0');
curl_setopt($ch, CURLOPT_REFERER, $baseurl);

$html = curl_exec($ch);
print($html);

?>
Resultado :
403 Forbidden

nginx/1.16.0​
 
Última edición:
Es que eso link seguron son temporarles,
tienes que hacerle scrape al player.
 
Atrás
Arriba