我正在尝试检索有关给定YouTube频道的所有视频的信息。
这是我的第一个请求:
GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&type=video&key={YOUR_API_KEY}
{
"kind": "youtube#searchListResponse",
"etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/15j9AlxbMtzBhzffpA04ahJgv9g\"",
"nextPageToken": "CDIQAA",
"regionCode": "FR",
"pageInfo": {
"totalResults": 375,
"resultsPerPage": 50
},
"items": [
"... 50 items here ..."
]
}
如您所见,总共有375个结果。因此,我使用nextPageToken
搜索了下50个视频。
GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&pageToken=CDIQAA&type=video&key={YOUR_API_KEY}
{
"kind": "youtube#searchListResponse",
"etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/7mmGfmqsGmfP8OggZWZVefQ7z6Q\"",
"nextPageToken": "CGQQAA",
"prevPageToken": "CDIQAQ",
"regionCode": "FR",
"pageInfo": {
"totalResults": 375,
"resultsPerPage": 50
},
"items": [
"... 28 more items here ..."
]
}
此回复中只有28个项目。此外,如果我查询下一页:
GET https://www.googleapis.com/youtube/v3/search?part=snippet&channelId={CHANNEL_ID}&maxResults=50&pageToken=CGQQAA&type=video&key={YOUR_API_KEY}
这一次根本没有任何物品。
{
"kind": "youtube#searchListResponse",
"etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/XKJQFk8Z_J6XraQ0mVCRtVWnSYc\"",
"nextPageToken": "CJYBEAA",
"prevPageToken": "CGQQAQ",
"regionCode": "FR",
"pageInfo": {
"totalResults": 375,
"resultsPerPage": 50
},
"items": [
]
}
是什么原因导致这种现象?我的请求有问题吗?
答案 0 :(得分:1)
在YouTube Data API v3
中,您应该:
GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&id=UCRVDPcrF_LTJo8u0bkzUL9A&key={YOUR_API_KEY}
json
"kind": "youtube#channel",
"etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/8HOHPc1ZO5cOiePp8nFHwKA99HM\"",
"id": "UCRVDPcrF_LTJo8u0bkzUL9A",
"contentDetails": {
"relatedPlaylists": {
"uploads": "UURVDPcrF_LTJo8u0bkzUL9A",
"watchHistory": "HL",
"watchLater": "WL"
您的频道的上载播放列表是UURVDPcrF_LTJo8u0bkzUL9A
playlistId
播放列表中的uploads
来获取在YouTube频道中上传的所有视频 GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=50&pageToken={WHEN_YOU_HAVE_A_PAGETOKEN_PUT_IT_HERE}&playlistId=UURVDPcrF_LTJo8u0bkzUL9A&key={YOUR_API_KEY}
Search: list
API的行为如此处所述:https://developers.google.com/youtube/v3/docs/search/list关于搜索结果属性pageInfo.totalResults
我的字面意思是:
结果集中的结果总数。请注意 值是一个近似值,可能不代表确切值。在 另外,最大值为1,000,000。
您不应使用此值创建分页链接。相反,使用 nextPageToken和prevPageToken属性值确定 是否显示分页链接。
此外,通过一些调查,我确实进行了测试,但是,当您在请求中明确指定了可选参数q
时,结果似乎“丢失”了视频,正如您指出的那样,显然只有相关视频的数据可以满足指定的过滤器值。