从嵌入式播放器播放YouTube视频

时间:2014-04-04 05:24:51

标签: javascript html5 iframe youtube-api httprequest

我正在尝试使用Chrome扩展程序播放YouTube视频,我经常收到error code 150,特别是来自我国外的视频。我使用Youtube Data API v3检索包含以下参数的视频:

part=id&type=video&order=relevance&safeSearch=strict&videoSyndicated=true&maxResults=1&videoEmbeddable=true

但是,当我从嵌入式播放器播放时,我经常会收到丢失错误代码150的视频。 一个例子是以下视频:

Turn down for what

从嵌入式播放器播放时,会抛出错误150,iframe中显示的错误消息为

  

视频包含来自SME的内容。它限制在某些网站上播放。

我在developers.google.com托管的youtube Player demo网站上使用相同的嵌入式iframe播放器尝试相同的视频,并且播放时没有错误代码。

因此,我怀疑上述错误是因为我正在尝试播放Chrome扩展程序中的视频,而不是因为我是从嵌入式播放器播放的。当我从本地计算机上托管的网页上播放它时(例如:file:///home/testing.page.html),我收到相同的错误消息。

要解决此问题,我尝试让YouTube认为我是一个普通网页,而不是Chrome扩展程序。通过使用chrome.webRequest,我在请求标头中添加了引用信息。

{ name: 'Referer', value: "https://www.youtube.com" }

即使修复了requestHeader,错误仍然存​​在。我认为这是因为youtube iframe播放器附加了origin属性,用于指定嵌入式播放器的来源,无论requestHeader如何。

我的目标是找到绝对可播放的视频,或播放只能从网页播放的视频(无法通过Chrome扩展程序播放)。

我将不胜感激任何帮助。谢谢。

额外信息

我的iframe初始化如下:

<iframe id="myframe" src="https://www.youtube.com/embed/?
enablejsapi=1&origin=chrome-extension:\\<my_extension_id>" frameborder="0" allowFullScreen></iframe>

0 个答案:

没有答案