2010-04-09 2 views
1

tube 비디오를 다운로드 할 때 phptube 클래스를 사용합니다. 코드에서phptube 클래스를 사용하여 youtube 비디오를 다운로드 할 수 없습니다.

from this site

내가 입력 상자에 유튜브 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 

문제가 어디 있는지 말해 줘요 ???

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;  

출력 ($ URL이) 여기 $t http://www.youtube.com/get_video?video_id=nlZJ7RsyC0g&t=

이다 null의 경우, 유튜브 URL에서 $ticket을 얻는 방법

답변

1

두 번째 오류는 becau입니다. 당신은 /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 플러그인이 빠져 있거나 올바른 값을 전달하지 않습니다. 당신의 의견은 무엇입니까?

희망이 도움이됩니다. 나는이 게시물에 오래된 망할 것을 알고 PHP Youtube Class

+0

고맙습니다. 두 번째 오류가 삭제되었지만 첫 번째 오류가 표시됩니다. 코드를 다운로드 한 곳에서 이동하십시오. 몇 가지 아이디어를 얻을 수 있습니다. – diEcho

+0

whey'video_id'와'& t'는 비어 있습니다.'file_get_contents (http://www.youtube.com/get_video?video_id=&t=)'에있는 .. .. 나는 비어 있으면 안된다고 생각합니다. – diEcho

+0

입력 한 내용은 YouTube 비디오입니다 url – diEcho

1

는 다른 클래스를 시도 했 . 그러나이 페이지는 에 대한 Google 검색의 첫 번째 5 개 결과로, "Youtube 비디오를 다운로드하는 PHP 클래스" -이 스레드를 가로 질러 올 수 있기 때문에 나는 자신의 (오픈 소스) PHP 클래스를 참조하고자합니다. (이 글을 쓰는 시점에서) 완전히 작동하며 상단에는 YT의 비디오를 다운로드 할뿐만 아니라 MP3 오디오 파일로 변환 할 수있는 추가 기능이 있습니다.

내 GitHub에서 찾을 수 있습니다 : https://github.com/eyecatchup/php-yt_downloader이 사람이 도움이되기를 바랍니다.

0

: -이 하나를 시도 - 나를 위해 치료를 작동하고 당신이 가능한 비디오 및 모든 관련 데이터를 얻을 필요가 있었다 모두가