2017-04-11 56 views
1

我们遇到了YouTube数据API未返回某些请求视频的统计信息的问题。我们使用自定义实现与API进行交互,但是可以使用API​​浏览器来重现问题,我将在整篇文章中使用它。某些视频ID缺少响应请求部分


首先,我会告诉你一个工作通道ID(UCfDUwK9MPrjxmsTz1pzjkbw)会发生什么:

使用channels.Listpart=statistics,contentDetails,snippetid=UCfDUwK9MPrjxmsTz1pzjkbw我们得到了一个有效的响应。对于这种用例,我们感兴趣的是contentDetails -> relatedPlaylists -> uploads,它返回播放列表ID UUfDUwK9MPrjxmsTz1pzjkbw

playlistItems.Listpart=contentDetailsplaylistId=UUfDUwK9MPrjxmsTz1pzjkbw(我们在前面的步骤中找到的播放列表ID)返回属于播放列表的视频列表。我们感兴趣的是contentDetails -> videoId。例如vSS9AYF29_U

videos.Listpart=id,statisticsid=vSS9AYF29_U(前面步骤中的示例视频ID)我们得到了我们正在查找的响应(此视频的统计信息)。


现在,与信道ID相同的过程,不能产生所希望的结果(UCpHTv1eQBeSlrdmlh8C6ZxQ):

channels.List返回播放列表ID UUpHTv1eQBeSlrdmlh8C6ZxQ

playlistItems.List返回实例视频ID OFTib3gUua0

videos.List确实不是返回请求的统计信息部分。


有没有人知道为什么会发生这种情况?是什么让这个频道如此特别?频道所有者是否可以禁止通过API检索公共信息?如果您在浏览器中观看视频(https://youtu.be/OFTib3gUua0),则可以看到统计信息本身。

我不认为问题出在我们的实现上,因为它可以通过API浏览器进行复制。另一个奇怪的事情是,这在几天前针对我们使用的每个频道ID都有效。

任何想法,高度赞赏。

+0

有一个人注意到这个问题的另一种情况:http://stackoverflow.com/questions/43339723/missing-statistics-from-video-list-response \t 我注意到,统计信息对象缺失的视频将publicStatsViewable设置为False(https://developers.google.com/youtube/v3/docs/videos#status.publicStatsViewable)。我无法找到文档中的任何内容来说明统计对象在这种情况下会丢失,但它似乎是迄今为止的一对一关联 - 我相信publicStatsViewable是频道所有者可以设置的内容。 – user3468054

+0

感谢您的评论@ user3468054!该文档称“即使此属性的值设置为false,视频的观看次数和评分等统计信息仍会公开显示”。这与此行为相矛盾,因为'part = statistics'返回'viewCount,likeCount,dislikeCount,favoriteCount,commentCount' –

+0

我同意它并不真正与文档所说的一起 - 只是一个经验观察(小样本) ! 另请参阅:https://issuetracker.google.com/issues/37107133 – user3468054

回答

1

这可能是一个错误,直到4月7日才能正常工作。为此创建了一个Issue Tracker,我们仍在等待Google对此的回应。

编辑: 这似乎终于被固定