我正在使用YouTube Data API v3创建Android应用。到目前为止一直很好,直到我意识到很多视频都没有播放。
我得到“来自持有人的内容因版权原因在您所在的国家/地区被屏蔽”....
我用谷歌搜索,似乎解决这个问题的方法是使用版本3的YouTube.Search.List对象并设置:
search.setVideoSyndicated("true");
不幸的是,这太严格了。所有Vevo视频以及谁知道结果中还有什么消失,即使这些视频播放正常。
我已经拥有search.setVideoEmbeddable("true")
所以这不是这个等式中感兴趣的变量。
现在我应该补充一下,我已经倾倒了文档并最终找到了这个:
...说:
检索视频以便在移动设备上播放
要确保API响应仅包含适合在移动设备上播放的视频,请将fields参数设置为以下值。请注意,必须对参数值中显示的哈希字符(#)进行转义(%23)。
fields=entry[link/@rel='http://gdata.youtube.com/schemas/2007%23mobile']
如果您正在为移动设备开发应用程序,您可能还需要在API请求中指定移动投影。
...
好的......所以尽管这只适用于API版本2.0(?)我想,“嘿......我是一个好奇的家伙......”我创建了以下测试网址并运行它通过Firefox来查看XML有效负载。
嗯......这确实有效。请注意,“/ mobile /”在文档中称为“投影”,通常在公共端点中为“/ api /”。
现在,当我说“这确实有用”时,这意味着我恢复了XML,确实过滤掉了“因版权原因阻止”播放错误的视频。
然而,搜索 P!NK 或 Rihanna 或(在此处插入流行艺术家du jour)会产生AWFUL结果。
我的头痛恶化:YouTube的Android官方移动应用程序显示INDEED显示YouTube Vevo的内容,因为我没有设置联合为真,并且他们没有显示我的国家因版权原因而被阻止的所有无数视频。
现在我在美国大苹果公司,所以我们不要把“你们国家”的东西用来暗示我在一些不幸的城堡里。
简而言之,在尝试创建可接受的移动用户体验或者我遗漏某些内容时,YouTube数据API中存在某些问题。我希望它是后者,有人可以告诉我如何使用YT Data API v3来获取Vevo(宝宝)并且因版权原因(洗澡水)结果丢失了6个“在您所在国家/地区被阻止”。
这个问题似乎是长期的,但也是一个“利基”领域,谷歌会告诉他们的API开发者社区使用联合属性从而删除其合作伙伴的所有内容,如Vevo似乎想要他们的手机上播放的内容。 Android的播放器API会显示广告,因此它毕竟是货币化的收入来源。
这里的任何人都可以告诉我这个等式中我缺少什么,或者这只是谷歌中没有人知道或认为足够优先解决的问题?我是API的第3版的新手,所以也许我只是不知道关键的东西。