Youtube视频下载在localhost上工作正常但不在live(生产)服务器上工作

时间:2016-08-17 14:24:37

标签: php youtube phpmyadmin youtube-api

我正在处理一个php文件,我可以把youtube视频网址,它给我下载链接,当我点击localhost上的下载按钮,视频开始下载,但当我把它放在现场时,它确实不行。 这是按钮的代码

    echo '  ' . '<a href="download.php?mime=' . $avail_formats[$i]['type']   .'&title='. urlencode($my_title) .'&token='.base64_encode($avail_formats[$i]['url']) . '" class="dl"><b>Record MP4</b></a>';

以下是该按钮下载按钮背后的代码

include_once('config.php');
// Check download token
if (empty($_GET['mime']) OR empty($_GET['token']))
{
  exit('Invalid download token 8{');
}

// Set operation params
$mime = filter_var($_GET['mime']);
$ext  = str_replace(array('/', 'x-'), '', strstr($mime, '/'));
$url  = base64_decode(filter_var($_GET['token']));
$name = urldecode($_GET['title']). '.' .$ext; 

// Fetch and serve
if ($url)
{
$size=get_size($url);
// Generate the server headers
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE)
{
    header('Content-Type: "' . $mime . '"');
    header('Content-Disposition: attachment; filename="' . $name . '"');
    header('Expires: 0');
    header('Content-Length: '.$size);
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header("Content-Transfer-Encoding: binary");
    header('Pragma: public');
}
else
{
    header('Content-Type: "' . $mime . '"');
    header('Content-Disposition: attachment; filename="' . $name . '"');
    header("Content-Transfer-Encoding: binary");
    header('Expires: 0');
    header('Content-Length: '.$size);
    header('Pragma: no-cache');
}

readfile($url);
exit;
}

// Not found
exit('File not found 8{');

它总是给我错误无效下载令牌,但在localhost上,它可以正常工作。为什么它在现场不起作用?

0 个答案:

没有答案