我在开发 Google Chrome 扩展程序时遇到了巨大的障碍。任何盈利的 YouTube 歌曲(例如带有广告)都不会播放。
这记录在此处: https://developers.google.com/youtube/flash_api_reference_as2#Events
以及此处:https://stackoverflow.com/questions/4852490/some-videos-not-playing-through-youtube-api
之前,我一直使用 YouTube 的 Flash API。在我尝试部署我的扩展之前,这一直很有效。那时我遇到了巨大的安全问题,由于权限不足而锁定了应用程序。因此,我重写了播放器以使用 iFrame API 而不是 Flash API。
iFrame API 允许我成功部署,没有任何 Flash 安全问题,但现在我无法播放任何带有广告的歌曲。
有人知道解决这个问题的方法吗?
编辑:
我的扩展可以在这里下载:http://www.meomixes.com/
可以在此处查看扩展的来源:http://github.com/MeoMix/YouPod
举个例子,这首歌对我来说非常适合:http://www.youtube.com/watch?v=QXtPoNfOYSo
然而,这首歌在播放时抛出错误:http://www.youtube.com/watch?v=_dfVAAWbLUY
请注意,第二首歌已货币化。
最佳答案
首先,我初始化了播放器并加载了视频:
如您所见,播放器拒绝嵌入视频,因为播放器太小。所以,我改变了播放器的大小,然后再次尝试:
视频开始播放。我在扩展中测试了相同的代码,问题也消失了。
因此,创建虚拟框架如下:
<iframe
width="640"
height="390"
src="http://www.youtube.com/embed/dummy?enablejsapi=1"
></iframe>
更多调试信息:
- 在前面的屏幕截图中,
http://localhost:8000/
是 Chrome 扩展程序的根目录。我使用python -m SimpleHTTPServer
创建服务器。 - 我拦截了框架和页面之间的消息,发现抛出了错误代码150。根据documentation ,这“与 101 相同”,并且“当请求的视频不允许在嵌入式播放器中播放时,会广播 101 错误代码。”
关于iframe - 在 Google Chrome 扩展程序中播放盈利的 YouTube 歌曲。我有什么选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873063/