首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取youtube视频的源url?

如何获取youtube视频的源url?
EN

Stack Overflow用户
提问于 2018-02-22 00:59:29
回答 1查看 1.9K关注 0票数 0

我正在尝试从这段代码中获取youtube url ...

代码语言:javascript
复制
<div class="html5-video-container" data-layer="0">
    <video tabindex="-1" class="video-stream html5-main-video" controlslist="nodownload" src="blob:https://www.youtube.com/654261e0-472e-42b8-baac-951c85f8bb18" style="width: 514px; height: 289px; left: 0px; top: 0px;"></video>
</div>

我可以从这个blob中获得src:https://www.youtube.com/654261e0-472e-42b8-baac-951c85f8bb18。但是我不能通过这个url来呈现视频。问题是如何获得视频源的参考链接?或者可能存在youtube API来获取视频来源?

EN

回答 1

Stack Overflow用户

发布于 2018-03-26 15:43:32

我有办法了。如果有人需要它,你可以使用它。

代码语言:javascript
复制
    // ES6 version
const videoUrls = ytplayer.config.args.adaptive_fmts
  .split(',')
  .map(item => item
    .split('&')
    .reduce((prev, curr) => (curr = curr.split('='),
      Object.assign(prev, {[curr[0]]: decodeURIComponent(curr[1])})
    ), {})
  )
  .reduce((prev, curr) => Object.assign(prev, {
    [curr.quality_label || curr.type]: curr
  }), {});

console.log(videoUrls);

// ES5 version
var videoUrls = ytplayer.config.args.adaptive_fmts
  .split(',')
  .map(function (item) {
    return item
      .split('&')
      .reduce(function (prev, curr) {
        curr = curr.split('=');
        return Object.assign(prev, {[curr[0]]: decodeURIComponent(curr[1])})
      }, {});
  })
  .reduce(function (prev, curr) {
    return Object.assign(prev, {
      [curr.quality_label || curr.type]: curr
    });
  }, {});

console.log(videoUrls);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48911461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档