也是之前寫的文章
轉自FQSTORY
直接下載YOUTUBE影片到電腦
最近因為某些YOUTUBE影片不能轉貼(必須進入YOUTUBE網站才能看)
而有一點不開心 =="
所以就搜尋許多YOUTUBE下載的軟體,發現還有蠻多缺點的
1.有些影片不能下載
(不能轉貼的好像都不能下載??,我只試了一個)
2.一次只能下載一個
(如果有一百個要下載,就要點一百次)(=="太麻煩,也許可能我用的軟體比較差)
3.有的要付錢
最後就想說 自己寫一個程式來下載YOUTUBE影片算了,說不定有人已經寫好了,顆顆
所以就GOOGLE找阿找的,只找到一些較差的方法(對我來說)
就是可以利用VIDEO_ID 和 T 來准許YOUTUBE讓使用者下載
輸入網址後,會跳出一個視窗,會要你另存新檔
但是還是遇到上面第二個問題,要一個一個點 (這樣不如不要寫程式了)
所以就繼續找阿找的,發現台灣網頁資訊真的有夠少 =="
就找到國外去了,就發現有很多人都有研究過這個問題
不過用他們的程式碼,不是不能用,就是還是有以上問題
最後還是只有到PHP官方網站研究 ==
終於融合以上資訊,寫出了 直接下載YOUTUBE影片到電腦
說實在的 程式碼也不多 大家可以學學看
至於要一次下載很多,可以修改之前發的 將YOUTUBE清單彙整成DISCUZ
(之後會在PO上來)
這樣就可以只輸入一個清單
就可以把清單裡面的所有TOUTUBE影片都下載到電腦喔!!
PHP CODE
$url='http://www.youtube.com/watch?v=25cEpGEpzhM';//這邊改網址
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();//因為本人是WINDOWS,所以檔名設成時間
$file_info = get_youtube_info($content);
$url = 'http://www.youtube.com/get_video?video_id='.$file_info['video_\
id'].'&t='.$file_info['t'];
//echo $filename.$url;
download_youtube($url,$filename);
}
function get_youtube_title($content){ //只有在LINUX有用 支援UTF8
$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 = 'http://www.youtube.com/get_video?t=vjVQa1PpcFPQSHWsGE2aAFygD\
i9onwck4nEpN0B_eSQ%3D&video_id=hjTb2gR8rpE';
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);//youtube 可能有轉址
curl_setopt($ch, CURLOPT_FILE,$fh);
curl_exec($ch);
fclose($fh);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.114.108
推 nighter:Google Data API ? 有 YouTube Data API for PHP ~~ 12/09 22:53
- Jul 16 Fri 2010 04:48
[轉貼] PHP CURL 下載YOUTUBE影片到電腦 (JUST TEST)
全站熱搜
留言列表