1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-04 02:09:22 +02:00
Oinktube/plugin/LiveLinks/proxy.php
2021-09-02 16:01:37 -03:00

55 lines
1.9 KiB
PHP

<?php
$doNotConnectDatabaseIncludeConfig = 1;
$doNotStartSessionbaseIncludeConfig = 1;
require_once '../../videos/configuration.php';
session_write_close();
_mysql_close();
/*
* this file is to handle HTTP URLs into HTTPS
*/
if (!filter_var($_GET['livelink'], FILTER_VALIDATE_URL) || !preg_match("/^http.*/i", $_GET['livelink'])) {
echo "Invalid Link";
exit;
}
header("Content-Type: video/vnd.mpegurl");
header("Content-Disposition: attachment;filename=playlist.m3u");
$options = array(
'http' => array(
'user_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
"method" => "GET",
"header" => array("Referer: localhost\r\nAccept-languange: en\r\nCookie: foo=bar\r\n")
)
);
$context = stream_context_create($options);
$_GET['livelink'] = addGlobalTokenIfSameDomain($_GET['livelink']);
$headers = get_headers($_GET['livelink'], 1, $context);
if (!empty($headers["Location"])) {
$_GET['livelink'] = $headers["Location"];
$urlinfo = parse_url($_GET['livelink']);
$content = fakeBrowser($_GET['livelink']);
$_GET['livelink'] = "{$urlinfo["scheme"]}://{$urlinfo["host"]}:{$urlinfo["port"]}";
} else {
$content = fakeBrowser($_GET['livelink']);
$pathinfo = pathinfo($_GET['livelink']);
}
if($content === "Empty Token"){
die("Empty Token on URL {$_GET['livelink']}");
}else{
foreach (preg_split("/((\r?\n)|(\r\n?))/", $content) as $line) {
$line = trim($line);
if (!empty($line) && $line[0] !== "#") {
if (!filter_var($line, FILTER_VALIDATE_URL)) {
if (!empty($pathinfo["extension"])) {
$_GET['livelink'] = str_replace($pathinfo["basename"], "", $_GET['livelink']);
}
$line = $_GET['livelink'] . $line;
}
}
echo $line . PHP_EOL;
}
}