一個非常常見的問題是「如何獲取Youtube視頻的網址?」。大多數答案都涉及到一些視頻頁面的html拼寫和重新編碼,或者訴諸'使用這個第三方工具或網站'。Javascript - 如何以編程方式獲取Youtube視頻的URL? (自我回答)
在任何Youtube視頻頁面的任何瀏覽器中,它都可以通過開發工具控制檯輕鬆完成。
請參閱下面的答案。
一個非常常見的問題是「如何獲取Youtube視頻的網址?」。大多數答案都涉及到一些視頻頁面的html拼寫和重新編碼,或者訴諸'使用這個第三方工具或網站'。Javascript - 如何以編程方式獲取Youtube視頻的URL? (自我回答)
在任何Youtube視頻頁面的任何瀏覽器中,它都可以通過開發工具控制檯輕鬆完成。
請參閱下面的答案。
例子是在這裏:
https://gist.github.com/geuis/8b1b2ea57d7f9a9ae22f80d4fbf5b97f
// Run from the dev tools console of any Youtube video
// Accurate as of June 12, 2016
var videoUrls = {};
ytplayer.config.args.url_encoded_fmt_stream_map.split(',').forEach(function (item) {
var obj = {};
item.split('&').forEach(function (param) {
param = param.split('=');
obj[param[0]] = decodeURIComponent(param[1]);
});
videoUrls[obj.quality] = obj;
});
console.log(videoUrls);
爲https://www.youtube.com/watch?v=9bZkp7q19f0
{
"hd720": {
"url": "https://r3---sn-n4v7sn76.googlevideo.com/videoplayback?ms=au&mv=m&mt=146577…zA3KgkxMjcuMC4wLjE&ip=108.233.85.171&key=yt6&requiressl=yes&itag=22&cnr=14",
"quality": "hd720",
"s": "1BEF82C7D9487809555E4B5124CA244FD93857C62.7869EB3FE7E8BE955B85E19F769DD80C49F3A87CB",
"itag": "22",
"type": "video/mp4;+codecs=\"avc1.64001F,+mp4a.40.2\""
},
"medium": {
"url": "https://r3---sn-n4v7sn76.googlevideo.com/videoplayback?ms=au&mv=m&mt=146577…AxLnNqYzA3KgkxMjcuMC4wLjE&ip=108.233.85.171&key=yt6&requiressl=yes&itag=18",
"quality": "medium",
"s": "35ADDCF2F151540B9AE72455ED9CD079B3A166669.F168091B130653FCACA72506C01625B74E46C1A7D",
"itag": "18",
"type": "video/mp4;+codecs=\"avc1.42001E,+mp4a.40.2\""
},
"small": {
"url": "https://r3---sn-n4v7sn76.googlevideo.com/videoplayback?ms=au&mv=m&mt=146577…AxLnNqYzA3KgkxMjcuMC4wLjE&ip=108.233.85.171&key=yt6&requiressl=yes&itag=17",
"quality": "small",
"s": "0C397549D581241F0F39D3EB8BF6E9B9067F65AFD.76B46A360178C4B001E96166C46AEAE5CF0D6A35F",
"itag": "17",
"type": "video/3gpp;+codecs=\"mp4v.20.3,+mp4a.40.2\""
}
}
任何語言應該如何訪問瀏覽器的開發工具?想象一下,我需要用C++ \ C#\ Java \ Swift \ Python \ PHP等製作我的應用程序的Youtube URL。「console.log」變得無關緊要,所以這就是爲什麼需要正則表達式/刮取HTML頁面或涉及一些解析工具。 –
@ VC.One您的問題是一個有效的問題,但它不在本文的範圍內。這就是爲什麼我設置'javascript'語言標籤。我已經回去並添加了開發工具標籤,以使其更清晰。 – Geuis
@ VC.One您需要使用[YouTube數據API](https://developers.google.com/youtube/v3/getting-started)而不是'get_video_info'端點,因爲它不會發送一個CORS響應('Access-Control-Allow-Origin'頭部)。 –
有**自答案**有趣的概念,樣本輸出 - 不知道這是可能發佈一個問題,並立即回答,以追蹤知識... –
@MichalStefanow是的,有一些關於它的文件。 http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/ – Geuis
@MichalStefanow,我知道對不對?不得不書籤鏈接incase我需要拉出「官方」的證據有一天(**如果**這樣的答案導致問題)... –