>我在某些问题上混淆了有关YouTube API活动列表的情况 端点最多为我带来 256 个项目,因为通道有超过 256 个活动。
根据这个频道(UC9zTuyWffK9ckEz1216noAw
(有297个视频(活动(,而端点返回256个活动。
例:
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.activities.list?part=snippet%252CcontentDetails&channelId=UC9zTuyWffK9ckEz1216noAw&maxResults=50&_h=1&
- 首先,每页的总结果都会发生变化!
- 最多退货256件!
我知道这是一个旧线程,但如果有人遇到与 OP 相同的问题,我想出了一个解决方案。
正如OP所提到的,由于某种原因,活动:列表的最大限制为256个活动,甚至认为文档中没有提到它。
但是,由于活动:列表允许我们使用publishedBefore
和publishedAfter
作为参数,我们可以使用它来获取publishedBefore
设置为DateTime.Now()
转换为ISO 8601(YYYY-MM-DDThh:mm:ss.sZ(格式的视频。
https://www.googleapis.com/youtube/v3/activities?part=snippet,contentDetails&maxResults=50&publishedBefore=[DateTime.Now() in ISO 8601 format]&channelId=[Channel_Id]&key=[Your_API_Key]
这将返回在指定日期之前发布的 50 个视频及其详细信息,包括publishedAt
.然后,对于接下来的 50 个活动,您可以从返回的列表中获取最后一项,并将转换为 ISO 8601 的publishedAt
值作为新的publishedBefore
参数传递。并重复此方法,直到通过检查是否返回 null 来获取所有视频nextPageToken
。
来自 activities.list 的文档
nextPageToken 字符串
可用作 pageToken 参数的值以检索结果集中的下一页的标记。
您将需要使用 NextPage 令牌来获取附加结果
"kind": "youtube#activityListResponse",
"etag": ""DuHzAJ-eQIiCIp7p4ldoVcVAOeY/CDAYwe0RayreWUk1bUL79fvoRUw"",
"nextPageToken": "CDIQAA",
"pageInfo": {
"totalResults": 108,
"resultsPerPage": 50
},
例
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.activities.list?part=snippet%252CcontentDetails&channelId=UC9zTuyWffK9ckEz1216noAw&maxResults=50&pageToken=CDIQAA&_h=2&