【问题标题】:Response is missing requested part for some video ids响应缺少某些视频 ID 的请求部分
【发布时间】:2017-09-06 19:54:52
【问题描述】:

我们面临的问题是 YouTube 数据 API 没有返回某些请求视频的统计信息。我们使用自定义实现与 API 交互,但可以使用 API 浏览器重现该问题,我将在本文中使用它。


首先,我将向您展示使用有效频道 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 都可以使用。

高度赞赏任何想法。

【问题讨论】:

  • 还有一个人注意到这个问题的例子:stackoverflow.com/questions/43339723/… 我注意到缺少统计对象的视频的 publicStatsViewable 设置为 False (developers.google.com/youtube/v3/docs/…)。我在文档中找不到任何内容说在这种情况下会丢失统计对象,但到目前为止它似乎是一对一的相关性 - 我相信 publicStatsViewable 是频道所有者可以设置的.
  • 感谢您的评论@user3468054!文档说“即使此属性的值设置为 false,视频的观看次数和收视率等统计数据仍将公开可见。”这与行为相矛盾,因为part=statistics 返回viewCount, likeCount, dislikeCount, favoriteCount, commentCount
  • 我同意它并没有真正与文档所说的内容挂钩 - 只是一个经验观察(在一个小样本上)!另见:issuetracker.google.com/issues/37107133
  • 目前看不出有什么问题。然而,有一些人说“随机”内容没有奏效。可能是他们在后端做某事时出现的错误。

标签: youtube youtube-api youtube-data-api


【解决方案1】:

这可能是一个错误,它在 4 月 7 日之前运行良好。为此创建了一个Issue Tracker,我们仍在等待 Google 对此的回应。

编辑: 这似乎终于解决了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 2017-04-30
    • 2021-01-27
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多