如何从YouTube视频网址获取直接视频网址?

时间:2017-03-03 08:06:12

标签: javascript android ios youtube react-native

我将使用React-Native播放YouTube和Vimeo视频。 目前我实施了React-Native-Video并且不支持播放YouTube或Vimeo网址,同时可以播放直接视频网址。 所以我只想直接引用YouTube视频网址中的文件(或流?)。     例如来自

https://www.youtube.com/watch?v=PCwL3-hkKrg

有没有好的第三方服务或网站来解决这个问题? 无论您使用何种类型的代码或方式,我都会使用React-Native来播放YouTube视频。

3 个答案:

答案 0 :(得分:2)

您可以通过以下代码获取YouTube的视频网址:

    // 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);

答案 1 :(得分:1)

最后,我能够从KeepVid网站获取youtube视频文件参考网址。

因为我不认为该网站支持restful api,所以我获取了其html内容并进行了解析以获取下载网址。 我没有在这里编写代码,因为它非常简单。 如果它对你有所帮助,我会很高兴。

答案 2 :(得分:0)

我可以理解你想要的东西 - 从Youtube或Vimeo的网址下载或播放视频[stream]。

唯一可能的方式是使用WebView,因为无法获取Vimeo的相关文件(不是“直接网址”)的链接,也无法获取YouTube (也许可以下载)。

如果您必须撰写自定义控件,例如使用您自己的SeekBar或按钮,...然后您可以通过与WebView控件结合实现它,对吧? 我不认为实施会有很多麻烦。

相关问题