youtube-api - Youtube API 频道搜索跳过列表中的视频
问题描述
我有一个应用程序正在对 YouTube 进行 API 调用,以获取某个频道的最新视频。突然,它生成的列表不完整。
我已经手动搜索了它抓取的特定视频,它跳过了一个比较 JSON 结果的视频,看看是否有什么东西使视频不同,但据我所知,除了明显的逻辑差异(标题, id 等;) 没有。
原始频道搜索调用如下所示:
https://www.googleapis.com/youtube/v3/search?part=snippet&channelId=UCi8e0iOVk1fEOogdfu4YgfA&maxResults=10&order=date&type=video&key={API_KEY}
响应是一个列表,似乎无缘无故地不断跳过大约 4 个视频。
以下是我拨打特定 ID 时跳过的视频示例:
"kind": "youtube#videoListResponse",
"etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/DoiqTSh7UcwtVvH87b5HIMkDSAA\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#video",
"etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/psJBlwJjAqrqgzcYJJIcvpK4mrI\"",
"id": "txDYwh46tew",
"snippet": {
"publishedAt": "2019-09-17T18:00:40.000Z",
"channelId": "UCi8e0iOVk1fEOogdfu4YgfA",
"title": "The Secret Garden International Trailer #1 (2020) | Movieclips Trailers",
"description": [removed for stackoverflow formatting],
"thumbnails": {
"default": {
"url": [removed for stackoverflow formatting],
"width": 120,
"height": 90
},
"medium": {
"url": [removed for stackoverflow formatting],
"width": 320,
"height": 180
},
"high": {
"url": [removed for stackoverflow formatting],
"width": 480,
"height": 360
},
"standard": {
"url": [removed for stackoverflow formatting],
"width": 640,
"height": 480
},
"maxres": {
"url": [removed for stackoverflow formatting],
"width": 1280,
"height": 720
}
},
"channelTitle": "Movieclips Trailers",
"tags": [
"The Secret Garden",
"The Secret Garden Trailer",
"The Secret Garden Movie Trailer",
"The Secret Garden Trailer 2019",
"The Secret Garden Official Trailer",
"Trailer",
"Trailers",
"Movie Trailers",
"2019 Trailers",
"The Secret Garden Trailer 1",
"Movieclips Trailers",
"Movieclips",
"Fandango",
"Entertainment",
"Movies",
"Drama",
"Family",
"Fantasy",
"Marc Munden",
"Colin Firth",
"Maeve Dermody",
"Julie Walters"
],
"categoryId": "1",
"liveBroadcastContent": "none",
"localized": {
"title": "The Secret Garden International Trailer #1 (2020) | Movieclips Trailers",
"description": [removed for stackoverflow formatting]
},
"defaultAudioLanguage": "en"
}
}
]
}
这是视频中的一个类似示例,它在原始更广泛的搜索中成功返回:
{
"kind": "youtube#videoListResponse",
"etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/kvDQkVJCJaguSZLpfF9hJWR7sVw\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#video",
"etag": "\"p4VTdlkQv3HQeTEaXgvLePAydmU/WYxiNVjYVTjfwUuXqUpGeoV4KDA\"",
"id": "C8HrLHSBVJo",
"snippet": {
"publishedAt": "2019-09-16T22:22:16.000Z",
"channelId": "UCi8e0iOVk1fEOogdfu4YgfA",
"title": "Know Before You Go: Rambo: Last Blood | Movieclips Trailers",
"description": [removed for stackoverflow formatting],
"thumbnails": {
"default": {
"url": [removed for stackoverflow formatting],
"width": 120,
"height": 90
},
"medium": {
"url": [removed for stackoverflow formatting],
"width": 320,
"height": 180
},
"high": {
"url": [removed for stackoverflow formatting],
"width": 480,
"height": 360
},
"standard": {
"url": [removed for stackoverflow formatting],
"width": 640,
"height": 480
},
"maxres": {
"url": [removed for stackoverflow formatting],
"width": 1280,
"height": 720
}
},
"channelTitle": "Movieclips Trailers",
"tags": [
"rambo last blood know before you go",
"know before you go",
"fandango",
"movieclips",
"trailers",
"rambo",
"last blood",
"rambo last blood",
"Sylvester Stallone",
"Paz Vega",
"Yvette Monreal",
"Adrian Grunberg",
"action",
"adventure",
"thriller",
"first blood",
"all rambo movies",
"rambo movies",
"rambo movies explained",
"rambo franchise explained",
"slyvester stallone",
"rambo explained",
"new rambo movie",
"new rambo trailer",
"sylvester stallone rambo"
],
"categoryId": "1",
"liveBroadcastContent": "none",
"defaultLanguage": "en",
"localized": {
"title": "Know Before You Go: Rambo: Last Blood | Movieclips Trailers",
"description": [removed for stackoverflow formatting]
},
"defaultAudioLanguage": "en"
}
}
]
}
频道 ID 都匹配,并且发布日期显示跳过的视频比它成功找到的视频发布的时间更晚。考虑到原始呼叫设置为按日期排序,因此没有理由将跳过的视频排除在结果之外。在找到的视频中,它们按时间顺序正确排序,因此它似乎也不是 order 参数。
我希望 API 搜索结果会以未过滤的 10 个在频道上发布的最新视频的列表作为响应。直到几天前,它一直在毫无问题地执行此操作。由于通话没有任何变化,它突然开始以一致的行为丢失视频。我不知道为什么这种行为会突然改变。
解决方案
推荐阅读
- node.js - 两个不同密码的 .env 环境
- spring-boot - Spring 和 Kafka:对 Kafka Producer 和 Kafka Streams 使用相同的绑定
- flutter - 如何在颤动中更改我的平面按钮的位置......(从最左边到最右边)
- java - 查找与用户输入匹配的数组中的第一个元素并在 2 个二维数组之间打印该位置
- javascript - 如何使用模态对话框库将用户输入存储为变量?(JavaScript)
- c++ - (char*)&obj 替代品
- javascript - 如何修复:discord.js 中的“TypeError:无法读取未定义的属性‘标签’”错误
- css - FullPage.JS 分屏。在移动设备上使其成为一页样式
- javascript - 在android上运行应用程序时出现问题
- css - webpack 4:创建多个主题 css 文件