YouTube JS API:Detect";“已禁用嵌入”;

YouTube JS API:Detect";“已禁用嵌入”;,youtube,youtube-api,Youtube,Youtube Api,使用youtube javascript api(),我试图允许用户将视频嵌入到他在我的应用程序中创建的某些内容中。除了能够检测和处理视频不允许嵌入的情况外,我已经让一切都正常工作了 目前,播放机加载并显示不允许的视频的缩略图,并且只有在用户尝试播放时才会给出错误。这是不好的,因为用户在保存/发送内容之前可能不会播放视频。我想先发制人地检测不允许嵌入视频,并向用户显示一条有用的消息 我能看到的唯一解决方案是实际播放(以编程方式)并处理在该点引发的错误 现有解决办法: 嵌入播放器(嵌入SWF) o

使用youtube javascript api(),我试图允许用户将视频嵌入到他在我的应用程序中创建的某些内容中。除了能够检测和处理视频不允许嵌入的情况外,我已经让一切都正常工作了

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

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

现有解决办法:

  • 嵌入播放器(嵌入SWF)
  • onYouTubePlayerReady():添加onStateChange事件侦听器上的onError。
  • onStateChange(newState):视频加载完成后,尝试播放它
    e、 g.if(newState==5/*CUED*/){player.mute();player.playVideo();player.stopVideo();player.unMute();}
  • onError(错误):如果视频未能在onStateChange中播放,将在此处接收错误。 有更好的办法吗

    谢谢

    -Rob

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


    我知道这并不是直接的问题,但是如果有人使用PHP偶然发现这个问题,在
    Zend\u Gdata\u YouTube\u VideoEntry中有一个方法
    getNoEmbed()

    摘自文件:

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


    我想您可能正在寻找
    videoSyndicated
    videoembeddeble
    参数。API文档说明:

    可嵌入视频 VideoEmbeddeble参数允许您将搜索限制为只能嵌入网页的视频。如果为此参数指定值,还必须将类型参数的值设置为“视频”

    参考:

    视频辛迪加 videoSyndicated参数允许您将搜索限制为只能在youtube.com之外播放的视频。如果为此参数指定值,还必须将类型参数的值设置为“视频”

    参考:

    示例调用 同时:

    GET https://www.googleapis.com/youtube/v3/search?&part=snippet,statistics&videoSyndicated=true&videoEmbeddable=true&key=${yourKey}