youtube-api - YouTube iOS SDK : correct GTLQueryYouTube parameters to filter out videos which can't be played on mobile?

标签 youtube-api

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

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

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

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

我们希望在搜索时过滤掉这些不可播放的视频。 GTLQueryYouTube API仅支持过滤“videoEmbeddable”和“videoSyndicated”,两者都无法正确过滤 Lana Del Rey 视频,但保留 Rihanna 视频。

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

想法?

最佳答案

不幸的是,通常无法使用 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 中,我们仅通过搜索限制公开它。我也会就此与团队进行跟进,以便在 videos.list 响应中更容易看到这一点。

关于youtube-api - YouTube iOS SDK : correct GTLQueryYouTube parameters to filter out videos which can't be played on mobile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28493268/

相关文章:

java - YouTube API - 获取其他 YouTube channel 的所有视频 ID

java - 从 YouTube API 解析 JSON

javascript - 如何在 YouTube 中创建企业专用私有(private) channel ?

javascript - 如何获得按地区列出当天观看次数最多的YouTube视频的列表?

java - YouTubeThumbnailView 示例

javascript - 如何使用 JavaScript 添加按钮以全屏播放 YouTube 视频?

android - 在Android中集成YouTube播放列表

ios - 如何获取 YTPlayerView 的播放列表 ID

swift - 如何从 YouTube Api 中的类别获取视频列表

javascript - Youtube JS API 在 Internet Explorer 中导致错误