直接下載YOUTUBE影片到電腦

edited 十月 2013 in 原創軟體分享區
不算轉載吧!! 都是自己寫的
FQSTORY

最近因為某些YOUTUBE影片不能轉貼(必須進入YOUTUBE網站才能看)
而有一點不開心 =="

所以就搜尋許多YOUTUBE下載的軟體,發現還有蠻多缺點的
1.有些影片不能下載
(不能轉貼的好像都不能下載??,我只試了一個)
2.一次只能下載一個
(如果有一百個要下載,就要點一百次)(=="太麻煩,也許可能我用的軟體比較差)
3.有的要付錢

最後就想說 自己寫一個程式來下載YOUTUBE影片算了,說不定有人已經寫好了,顆顆
所以就GOOGLE找阿找的,只找到一些較差的方法(對我來說)
就是可以利用VIDEO_ID 和 T 來准許YOUTUBE讓使用者下載
輸入網址後,會跳出一個視窗,會要你另存新檔
但是還是遇到上面第二個問題,要一個一個點 (這樣不如不要寫程式了)

所以就繼續找阿找的,發現台灣網頁資訊真的有夠少 =="
就找到國外去了,就發現有很多人都有研究過這個問題
不過用他們的程式碼,不是不能用,就是還是有以上問題

最後還是只有到PHP官方網站研究 ==
終於融合以上資訊,寫出了 直接下載YOUTUBE影片到電腦

說實在的 程式碼也不多 大家可以學學看
至於要一次下載很多,可以修改之前發的 將YOUTUBE清單彙整成DISCUZ
(之後會在PO上來)
這樣就可以只輸入一個清單
就可以把清單裡面的所有TOUTUBE影片都下載到電腦喔!!


PHP CODE

$url='
get_youtube_url($url); //開始正式執行
function get_youtube_url($url){ //處理字串的程式
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL,$url);
$content = curl_exec($ch);
$filename = get_youtube_title($content);//WINDOWS 不支援UTF8 無法使用中文檔
$filename = mktime();
$file_info = get_youtube_info($content);
$url = '
//echo $filename.$url;
download_youtube($url,$filename);

}

function get_youtube_title($content){ //只有在LINUX有用
$content = substr($content,strpos($content,'<meta name="title"')+28);
$content = substr($content,0,strpos($content,'"'));
return $content;
}
function get_youtube_info($content){ //處理影片資訊的程式
$content = strstr($content,"var swfArgs");
$content = substr($content,0,strpos($content,';'));
$return='';
$content = explode('"',$content);
foreach($content as $a => $b){
if($a%4 == 1){
$return[$b] = $content[$a+2];
}
}
return $return;
}
function download_youtube($url,$filename){ //真正下載的程式
$fh = fopen($filename.'.flv', 'w+');
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//$url = '
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//youtube 可能有轉指
curl_setopt($ch, CURLOPT_FILE,$fh);
curl_exec($ch);
fclose($fh);
}


原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=4571
Sign In or Register to comment.