我正在尝试使用Chrome扩展程序播放YouTube视频,我经常收到error code 150
,特别是来自我国外的视频。我使用Youtube Data API v3
检索包含以下参数的视频:
part=id&type=video&order=relevance&safeSearch=strict&videoSyndicated=true&maxResults=1&videoEmbeddable=true
但是,当我从嵌入式播放器播放时,我经常会收到丢失错误代码150的视频。 一个例子是以下视频:
从嵌入式播放器播放时,会抛出错误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>