代码之家  ›  专栏  ›  技术社区  ›  xkeshav

无法使用phptube类下载youtube视频

  •  1
  • xkeshav  · 技术社区  · 14 年前

    我正在使用phptube类下载您的tube视频。

    from this site

    在代码中,我将youtube url粘贴到一个输入框上,但下面有错误。

    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 为空,如何获取 $ticke 来自youtube url的t

    3 回复  |  直到 14 年前
        1
  •  1
  •   mattbasta    14 年前

    第二个错误是因为没有名为 /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=

    希望这有帮助!

        2
  •  1
  •   user398341    12 年前

    你试过其他的课程吗-试一下这个-对我来说很有用,它有你可能需要的所有东西来获取视频和所有相关数据: PHP Youtube Class

        3
  •  0
  •   eyecatchUp    12 年前

    我知道这篇文章太老了。但是由于这个页面在谷歌搜索的前五个结果中 “下载Youtube视频的PHP类”

    你可以在我的GitHub找到它: https://github.com/eyecatchup/php-yt_downloader