YouTube iOS SDK:正确的GTLQueryYouTube参数可以滤除无法在移动设备上播放的视频吗?

时间:2013-06-29 20:42:45

标签: youtube-api

我正在尝试找到合适的GTLQueryYouTube参数来过滤掉无法在移动设备上播放的视频(在iOS UIWebView中)。 videoEmbeddable和videoSyndicated params限制性太强(他们会过滤掉所有VEVO视频)。

在我们的iOS应用中,我们通过GTLQueryYouTube搜索YouTube视频,将videoEmbeddable和videoSyndicated参数留空。

这将返回通常可在UIWebView中播放的Vevo视频。例如“蕾哈娜 - 钻石”(lWA2pjMjpBs)是可玩的。它无法在嵌入视图中播放。

但有些视频无法播放。例如,“Lana Del Rey - Gods and Monsters”(3BwfuFuYOWE)无法在UIWebView中播放。 YouTube页面加载,但我没有播放视频,而是看到错误“内容所有者尚未在移动设备上显示此视频”。

我们希望在搜索时过滤掉这些不可播放的视频。 GTLQueryYouTube API仅支持对“videoEmbeddable”和“videoSyndicated”进行过滤,这两种情况均无法正确过滤 out Lana Del Rey视频,但留下 Rihanna视频

似乎有一个缺少过滤器参数来过滤掉这些类型的视频。检查metadata并未发现Rihanna和Lana Del Rey视频之间存在任何明显差异。

想法?

2 个答案:

答案 0 :(得分:2)

一般情况下,遗憾的是无法使用API​​确定所有播放限制。我们在这里有一个API v2指南:http://apiblog.youtube.com/2011/12/understanding-playback-restrictions.html但是还没有类似的v3资源。

我建议使用(videoEmbeddable和videoSyndicated)搜索限制,因为这是他们的设计目的。一种方法是将用户带到m.youtube.com以播放受第三方应用限制的视频。或者,您可以尝试与内容所有者联系并说服他们更改内容的配置(因为这是YouTube强制执行但未配置的内容)。

关于您专门列出的视频:

  1. lWA2pjMjpBs已禁用自动播放功能,可以解释您遇到的问题:http://gdata.youtube.com/feeds/api/videos/lWA2pjMjpBs?v=2&prettyprint=true。我们还没有在v3响应中返回自动播放限制,但会跟进团队。
  2. 3BwfuFuYOWE禁用联合发布。在v2中,您可以在此处看到它:http://gdata.youtube.com/feeds/api/videos/3BwfuFuYOWE?v=2&prettyprint=true,但在第3版中,我们只通过搜索限制公开它。我将跟进团队,以便在videos.list响应中更容易看到。

答案 1 :(得分:0)

一种可能的解决方案(诚然,不是很优雅)是进行两次GTLQueryYouTube次呼叫:

  1. videoSyndicated关闭(或设置为all):在GTLYouTubeSearchResultSnippet的说明字段中搜索关键字“VEVO”,返回热门搜索结果

    < / LI>
  2. videoSyndicated on(设置为true):最佳搜索结果(使用您选择的适当过滤器)。

  3. 如果第一个查询返回null结果,那么您假设没有VEVO视频,并且您使用下一个最佳可播放视频(2)。