2010-04-09 57 views
1

我使用phptube类下载你管视频。无法下载使用phptube类的youtube视频

from this site

在代码粘贴我在输入框中输入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 

请告诉我在哪里的问题???

UPDATE:

这里是主代码

$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;  

输出($网址)是 http://www.youtube.com/get_video?video_id=nlZJ7RsyC0g&t=

这里$t为null,如何从YouTube网址获得$ticke

回答

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插件已被插入,或者您没有传入正确的值。你的意见是什么?

希望这会有所帮助!

+0

谢谢先生,第二个错误已被消除,但第一个错误stiil出现,请通过该网站从我下载的代码,你可能会有一些想法。 – diEcho 2010-04-09 11:33:07

+0

乳清'video_id'和'&t'为空' in'file_get_contents(http://www.youtube.com/get_video?video_id=&t=)'.. 我认为这不应该是空的 – diEcho 2010-04-09 11:34:49

+0

我的输入是youtube视频url – diEcho 2010-04-09 11:45:47

1

你尝试不同的类 - 尝试这一个 - 工程请客,我和它拥有所有你可能需要获得视频和所有相关的数据:PHP Youtube Class

0

我知道这个帖子是该死的老。但是,由于此页面是谷歌搜索“PHP类下载Youtube视频”的前五项结果 - 因此其他人可能会遇到此线程,所以我想参考我自己的(开源)PHP类这是完整的功能(在写这篇文章的时候)和 - 顶部 - 有一个额外的功能,不仅从YT下载视频,而且还将其转换为MP3音频文件。

你可以在我的GitHub找到它:https://github.com/eyecatchup/php-yt_downloader我希望这可以帮助某人。