代码拉取完成,页面将自动刷新
同步操作将从 缘维/you2php 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php
if(!is_array($_GET)&&count($_GET)>0){
exit();
}
@error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
@ignore_user_abort(0);
@set_time_limit(0);
include('./YouTubeDownloader.php');
$yt = new YouTubeDownloader();
$u="https://www.youtube.com/watch?v=".$_GET['v'];
$links = $yt->getDownloadLinks($u);
switch ($_GET['quality'])
{
case "3GP144P":
$file_path=$links['17']['url'];
break;
case "360P":
$file_path=$links['18']['url'];
break;
case "720P":
$file_path=$links['22']['url'];
break;
case "WebM360P":
$file_path=$links['43']['url'];
break;
case "Unknown":
$file_path=$links['36']['url'];
break;
}
$url = trim($file_path);
$urlArgs = parse_url($url);
$host = $urlArgs['host'];
$requestUri = $urlArgs['path'];
if (isset($urlArgs['query'])) {
$requestUri .= '?' . $urlArgs['query'];
}
$protocol = ($urlArgs['scheme'] == 'http') ? 'tcp' : 'ssl';
$port = $urlArgs['port'];
if (empty($port)) {
$port = ($protocol == 'tcp') ? 80 : 443;
}
$header = "{$_SERVER['REQUEST_METHOD']} {$requestUri} HTTP/1.1\r\nHost: {$host}\r\n";
unset($_SERVER['HTTP_HOST']);
$_SERVER['HTTP_CONNECTION'] = 'close';
if ($_SERVER['CONTENT_TYPE']) {
$_SERVER['HTTP_CONTENT_TYPE'] = $_SERVER['CONTENT_TYPE'];
}
foreach ($_SERVER as $x => $v) {
if (substr($x, 0, 5) !== 'HTTP_') {
continue;
}
$x = strtr(ucwords(strtr(strtolower(substr($x, 5)), '_', ' ')), ' ', '-');
$header .= "{$x}: {$v}\r\n";
}
$header .= "\r\n";
$remote = "{$protocol}://{$host}:{$port}";
$context = stream_context_create();
stream_context_set_option($context, 'ssl', 'verify_host', false);
$p = stream_socket_client($remote, $err, $errstr, 60, STREAM_CLIENT_CONNECT, $context);
if (!$p) {
exit;
}
fwrite($p, $header);
$pp = fopen('php://input', 'r');
while ($pp && !feof($pp)) {
fwrite($p, fread($pp, 1024));
}
fclose($pp);
$header = '';
$x = 0;
$len = false;
$off = 0;
while (!feof($p)) {
if ($x == 0) {
$header .= fread($p, 1024);
if (($i = strpos($header, "\r\n\r\n")) !== false) {
$x = 1;
$n = substr($header, $i + 4);
$header = substr($header, 0, $i);
$header = explode(PHP_EOL, $header);
foreach ($header as $m) {
if (preg_match('!^\\s*content-length\\s*:!is', $m)) {
$len = trim(substr($m, 15));
}
header($m);
}
$fname=$_GET['name'].'.'.$_GET['format'];
header("Content-Disposition: attachment;filename=\"$fname\"");
$off = strlen($n);
echo $n;
flush();
}
} else {
if ($len !== false && $off >= $len) {
break;
}
$n = fread($p, 1024);
$off += strlen($n);
echo $n;
flush();
}
}
fclose($p);
?>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。