我正在製作一個下載YouTube視頻的小項目。我遇到了一個驚人的網站:如何抓住Youtube下載鏈接解密Youtube使用的密碼?
http://vimow.com/watch?v=VID_ID_HERE
令人驚奇的是,每一個視頻在這裏工作,然後用乾淨的YouTube視頻鏈接完美流,但我不能找出這傢伙是如何提取視頻鏈接乾淨。 (這適用於VEVO和索尼版權所有的YouTube視頻)
我搜索了一下,發現youtube已經安裝了某些密碼來編碼它們的URL路徑,並且有一個類似的腳本來解密它。我不知道如何實現。我只是能夠創建一個糟糕的代碼集,它使用假用戶代理瀏覽到YouTube的移動視圖,並獲得只有高清MP4鏈接。
如何實施?或者任何人都可以告訴我該vimow網站是如何工作的?
而對於那些有興趣在我的代碼至今:
<?php
if(!empty($_GET['url'])) {
$url = "https://www.youtube.com/watch?v=".$_GET['url'];
$ch1= curl_init();
curl_setopt ($ch1, CURLOPT_URL, "$url");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch1,CURLOPT_VERBOSE,1);
//curl_setopt($ch1, CURLOPT_USERAGENT, 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5');
curl_setopt ($ch1, CURLOPT_REFERER,'http://www.google.com'); //just a fake referer
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1,CURLOPT_POST,0);
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, 20);
$htmlContent= curl_exec($ch1);;
$source = urldecode($htmlContent);
$downloadURL = explode('url_encoded_fmt_stream_map', $source);
$downloadURL = substr($downloadURL[1], 0, 15600);
$downloadURL = explode("url=", $downloadURL);
$mp4link = str_split($downloadURL[1]);
$newmp4link = array();
for($i=0;$i<count($mp4link);$i++) {
array_push($newmp4link, $mp4link[$i]);
if($mp4link[$i] == '\\' || $mp4link[$i] == ',') {
break;
}
}
$newmp4link = join("", $newmp4link);
$newmp4link = str_replace("\\","", $newmp4link);
$newmp4link = str_replace(",","", $newmp4link);
$newmp4link = str_replace(";","", $newmp4link);
$ext = "mp4";
function generateRandomString($length) {
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
$rand = generateRandomString(100);
$target = "tmp/$rand.mp4";
copy($newmp4link, $target);
echo "$newmp4link";
header("Location: tmp/$rand.mp4");
?>
這不是一個竅門,只需將網址中的c.docs.google.com替換爲googlevideo.com即可。我在https://github.com/jeckman/YouTube-Downloader上使用這個技巧Youtube-Downloader – wali 2015-07-27 05:31:29