我正在使用YouTube search.list API来查找特定频道上的所有视频:
https://www.googleapis.com/youtube/v3/search?part=snippet&type=video&channelId=my-channel-id&key=my-public-key
(由于隐私问题,恐怕我无法提供具体细节。
因此,这适用于常见的YouTube频道,但有时仅适用于某些个人频道,通常不会返回任何结果。
个人电话的情况是:您拨打的第一个电话会返回视频,但是如果您刷新浏览器,它会返回没有结果(但也没有错误)。
我发现了这两个关于不一致的搜索结果的实时问题,但我的问题似乎有点不同(没有查询,只是一个特定的频道 ID)。
知道发生了什么吗? 我找不到一致返回结果的通道与不返回结果的通道之间的差异。 这几乎就像谷歌在限制某些搜索结果一样。 如果我被授权而不是使用公钥,也会发生同样的事情。
在频道中获取所有视频(理想情况下在单个呼叫中)的替代方法也是可以接受的。
因此,要回答我自己的问题,您可以使用 activities.list API 获取频道中的所有视频,这似乎比搜索更可靠:
https://www.googleapis.com/youtube/v3/activities?part=snippet%2CcontentDetails&channelId=my-channel-id&key=my-public-key
您需要包含"内容详细信息"部分,因为它包含视频ID。
更新
另一种方法是使用"上传"播放列表(请参阅此SO答案)。 这比活动更好,因为活动包括视频上传以外的内容,并且 API 不提供筛选方法。
https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=my-uploads-playlist-id&key=my-public-key