使用youtube javascript api(http://code.google.com/apis/youtube/js_api_reference.html),我试图允许用户将视频嵌入到我在应用中创建的某些内容中。我已经完成了所有工作,除了能够检测和处理视频不允许嵌入的情况。
目前,播放器加载并显示不允许视频的缩略图,并且只有在用户尝试播放时才会出现错误。这很糟糕,因为用户可能在保存/发送其内容之前不播放视频。我想先发制人地检测到不允许嵌入视频,并向用户显示有用的消息。
我能看到的唯一解决方案是实际播放它(以编程方式)并处理此时引发的错误。
现有解决方法:
有更好的方法吗?
谢谢!
-Rob
答案 0 :(得分:6)
您可以在嵌入之前获取该视频条目的JSON Feed,并查看是否存在“yt $ format”:5,即嵌入SWF。如果禁用嵌入,它将不存在。
http://gdata.youtube.com/feeds/api/videos/video_id?v=2&alt=json-in-script
答案 1 :(得分:0)
我知道这不是直接针对这个问题,但是如果有人使用PHP会遇到这个问题,那么getNoEmbed()
中就会有Zend_Gdata_YouTube_VideoEntry
方法。
取自文档:
如果返回值是
Zend_Gdata_YouTube_Extension_NoEmbed
的实例,则无法嵌入此视频。
答案 2 :(得分:0)
我认为您可能正在寻找videoSyndicated
或videoEmbeddable
参数。 API文档说:
videoEmbeddable参数使您可以将搜索限制为仅可嵌入网页的视频。如果您为此参数指定一个值,则还必须将类型参数的值设置为video。
参考:https://developers.google.com/youtube/v3/docs/search/list#videoEmbeddable
videoSyndicated参数可让您将搜索限制为仅可在youtube.com外部播放的视频。如果您为此参数指定一个值,则还必须将类型参数的值设置为video。
参考:https://developers.google.com/youtube/v3/docs/search/list#videoSyndicated
同时使用:
GET https://www.googleapis.com/youtube/v3/search?&part=snippet,statistics&videoSyndicated=true&videoEmbeddable=true&key=${yourKey}