我正在使用phptube课下载视频管。
在代码中,我将youtube网址粘贴到输入框中,但下面有错误。
Warning: file_get_contents(http://www.youtube.com/get_video?video_id=&t=)
[function.file-get-contents]: failed to open stream: HTTP request failed!
HTTP/1.0 404 Not Found
和
Warning: file_put_contents(./flvs/3Hx9VsqMUug.flv) [function.file-put-contents]:
failed to open stream: No such file or directory in E:\xampp\htdocs\vdo\utube
\functions.php on line 19
path:./flvs/3Hx9VsqMUug.flv
请告诉我哪里有问题???
更新
这是主要代码
$url = "http://www.youtube.com/watch?v=".$video_id;
//where $video_id=nlZJ7RsyC0g
$this->req =& new HTTP_Request($url);
//echo "<pre>";
//print_r($this->req);
//echo "</pre>";
//die;
$response = $this->req->sendRequest();
//echo $response; die;
if (PEAR::isError($response)) {
//echo "inside if";
$response->getMessage()."\n";
} else {
//echo "inside else";
$page = $this->req->getResponseBody();
//print_r($page);
//var_dump($page);
//die;
preg_match("/video_id=(\w*)/",$page,$mv);
$v_id = $mv[1];
preg_match("/&t=([\w]*)&/",$page,$tickets);
$ticket = $tickets[1];
$curl = "";
$curl .= $v_id;
$curl .= "&t=";
$curl .= $ticket;
//echo $curl;
$url = "http://www.youtube.com/get_video?video_id=".$curl;
echo $url;
die;
if ($this->debug)
return $url;
输出($ url)是
http://www.youtube.com/get_video?video_id=nlZJ7RsyC0g&t=
此处$t
为空,如何从youtube网址获取$ticke
答案 0 :(得分:1)
您的第二个错误是因为您没有名为/flvs/
的目录。在与执行脚本相同的目录中创建它,你就会成为金色。
至于您的第一个错误,听起来YouTube可能会阻止您的服务器。尝试在发出请求之前设置用户代理:
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9');
(我发现网上的代码片段代替花时间写我自己的。只是说。)
此外,它看起来不像你传递任何参数(?video_id=&t=
)。您正在使用的phptube插件是插入的,或者您没有传递正确的值。你的意见是什么?
希望这有帮助!
答案 1 :(得分:1)
你有没有尝试过另一个课程 - 试试这个课程 - 对我来说是一种享受,它有你可能需要的所有东西来获取视频和所有相关数据:PHP Youtube Class
答案 2 :(得分:0)
我知道这篇文章太老了。但由于此页面是谷歌搜索“PHP类下载Youtube视频”的前五个结果 - 因此其他人可能会遇到这个帖子,我想参考我自己的(开源)PHP类功能齐全(在编写本文时)和 - 在顶部 - 还有一个附加功能,不仅可以从YT下载视频,还可以将它们转换为mp3音频文件。
你可以在我的GitHub上找到它:https://github.com/eyecatchup/php-yt_downloader我希望这有助于某人。