我们遇到的问题是YouTube Data API没有返回某些请求的视频的统计信息。我们使用自定义实现与API交互,但问题可以使用API资源管理器重现,我将在本文中使用它。
首先,我将向您展示工作渠道ID(UCfDUwK9MPrjxmsTz1pzjkbw
)会发生什么:
将channels.List
与part=statistics,contentDetails,snippet
和id=UCfDUwK9MPrjxmsTz1pzjkbw
一起使用,即可获得有效回复。对于此用例,我们感兴趣的是contentDetails -> relatedPlaylists -> uploads
,它会返回播放列表ID UUfDUwK9MPrjxmsTz1pzjkbw
。
part=contentDetails
和playlistId=UUfDUwK9MPrjxmsTz1pzjkbw
的{{3}}(我们在之前的步骤中找到的播放列表ID)会返回属于播放列表的视频列表。我们对contentDetails -> videoId
感兴趣。例如vSS9AYF29_U
。
playlistItems.List
与part=id,statistics
和id=vSS9AYF29_U
(前一步中的示例视频ID)我们得到了我们正在寻找的响应(此视频的统计信息)。
现在,具有无法产生所需结果的通道ID的相同过程(UCpHTv1eQBeSlrdmlh8C6ZxQ
):
videos.List
会返回播放列表ID UUpHTv1eQBeSlrdmlh8C6ZxQ
channels.List
返回示例视频ID OFTib3gUua0
playlistItems.List
不会返回请求的统计信息部分。
有谁知道为什么会这样?是什么让这个频道如此特别?频道所有者是否可以禁用通过API检索的公共信息?如果您在浏览器中观看视频(videos.List
),则可以看到统计信息本身。
我不认为问题出在我们的实现上,因为它可以使用API资源管理器进行复制。另一个奇怪的事情是,几天前我们使用的每个频道ID都有效。
任何想法都受到高度赞赏。