Javascript - Как программно получить URL для видео Youtube? (Самообеспечение ответ)
Чрезвычайно распространенный вопрос - "Как получить URL для видео на YouTube?". Большинство ответов включают в себя некоторую очистку и регулярное выражение HTML-страницы видео или использование "стороннего инструмента или веб-сайта".
Это чрезвычайно легко сделать с помощью консоли инструментов разработчика в любом браузере на любой видео-странице Youtube.
Смотрите ответ ниже.
1 ответ
Пример здесь:
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\""
}
}