1

我正在尝试找到正确的 GTLQueryYouTube 参数来过滤出无法在移动设备上播放的视频(在 iOS UIWebView 中)。videoEmbeddable 和 videoSyndicated 参数过于严格(它们会过滤掉所有 VEVO 视频)。

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

这将返回通常可在 UIWebView 中播放的 Vevo 视频。例如“Rihanna - Diamonds” (lWA2pjMjpBs) 是可播放的。它不能在嵌入式视图中播放。

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

我们希望在搜索时过滤掉这些不可播放的视频。GTLQueryYouTube API仅支持对“videoEmbeddable”和“videoSyndicated”的过滤,它们都不能正确过滤Lana Del Rey 的视频,而是留在Rihanna 的视频中。

似乎缺少过滤器参数来过滤掉这些类型的视频。检查元数据并没有发现蕾哈娜和拉娜德尔雷视频之间的任何明显差异。

想法?

4

2 回答 2

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 ,但在 v3 中,我们仅通过搜索限制公开它。我也会就此与团队跟进,以便在video.list 响应中更容易看到。
于 2013-07-02T22:03:22.023 回答
0

一种可能的解决方案(诚然,不是很优雅)是打两个GTLQueryYouTube电话:

  1. videoSyndicatedoff(或设置为all):在 的描述字段中搜索关键字“VEVO” GTLYouTubeSearchResultSnippet,返回顶部搜索结果

  2. videoSyndicatedon(设置为true):最佳搜索结果(使用您选择的适当过滤器)。

如果第一个查询返回空结果,则假设没有 VEVO 视频,并使用下一个最佳可播放视频 (2)。

于 2014-07-05T19:03:30.327 回答