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\""
  }
}
Другие вопросы по тегам