4

使用 youtube javascript api ( http://code.google.com/apis/youtube/js_api_reference.html ),我试图允许用户将视频嵌入到他在我的应用程序中创建的一些内容中。除了能够检测和处理视频不允许嵌入的情况外,我已经完成了所有工作。

目前,播放器会加载并显示不允许播放的视频的缩略图,并且只有在用户尝试播放时才会出现错误。这很糟糕,因为用户在保存/发送他的内容之前可能不会播放视频。我想先发制人地检测到不允许嵌入视频,并向用户显示有用的消息。

我能看到的唯一解决方案是实际播放它(以编程方式)并处理此时引发的错误。

现有的解决方法:

  1. 嵌入播放器 (embedSWF)
  2. onYouTubePlayerReady():添加 onError onStateChange 事件监听器。
  3. onStateChange(newState):当视频加载完毕后,尝试播放。
    例如 if (newState == 5 /* CUED */) { player.mute(); 播放器.playVideo(); 播放器.stopVideo(); 播放器.unMute(); }
  4. onError(error):如果视频在 onStateChange 中播放失败,将在此处收到错误消息。

有没有更好的办法?

谢谢!
-抢

4

3 回答 3

6

您可以在嵌入之前获取该视频条目的 JSON 提要,并查看“yt$format”:5 是否存在,即嵌入的 SWF。如果嵌入被禁用,它将不存在。

http://gdata.youtube.com/feeds/api/videos/video_id?v=2&alt=json-in-script

于 2009-06-03T04:50:23.777 回答
1

我认为您可能正在寻找videoSyndicatedorvideoEmbeddable参数。API 文档说:

视频可嵌入

videoEmbeddable 参数允许您将搜索限制为仅可嵌入网页的视频。如果为此参数指定值,则还必须将 type 参数的值设置为 video。

参考:https ://developers.google.com/youtube/v3/docs/search/list#videoEmbeddable

视频辛迪加

videoSyndicated 参数可让您将搜索限制为仅可在 youtube.com 之外播放的视频。如果为此参数指定值,则还必须将 type 参数的值设置为 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}
于 2019-05-13T11:58:03.810 回答
0

我知道这不是直接的问题,但万一使用 PHP 的人偶然发现了这个问题,getNoEmbed()Zend_Gdata_YouTube_VideoEntry.

取自文档:

如果返回值为 的实例Zend_Gdata_YouTube_Extension_NoEmbed,则无法嵌入此视频。

于 2012-01-29T16:11:46.497 回答