Youtube API活动最多返回256个活动,而不是297个活动

时间:2018-05-14 13:24:37

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

我在关于YouTube API Activities list的一些问题中感到困惑 端点为我带来最多256个项目,通道有超过256个活动。

根据此频道(UC9zTuyWffK9ckEz1216noAw)有297个视频(活动),而Endpoint返回256个活动。

示例:

  

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.activities.list?part=snippet%252CcontentDetails&channelId=UC9zTuyWffK9ckEz1216noAw&maxResults=50&_h=1&

  1. 首先,每页的totalResults更改!
  2. 最多物品最多返回256!

2 个答案:

答案 0 :(得分:1)

我知道这是一个旧线程,但是如果有人遇到与OP相同的问题,我想出了一个解决方案。

如OP所述,由于某种原因,Activities: list最多可以进行256个活动,甚至认为documentation中没有提及。

但是,由于Activities: list允许我们使用publishedBeforepublishedAfter作为参数,因此我们可以使用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 8601publishedAt值作为新的publishedBefore参数传递。然后重复此方法,直到通过检查nextPageToken是否返回null来获得所有视频为止。

答案 1 :(得分:0)

来自activities.list

的文档
  

nextPageToken string
  可用作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&