youtube - 如何获取 Youtube API v3 中 PlaylistItems 中列出的视频的频道 ID?
问题描述
当我尝试使用 列出视频时playlistItems.list
,我似乎无法在channelId
任何地方获得视频。请注意,视频所有者与播放列表所有者不同。
我从播放列表中请求一个 ID 为 的项目PLgMGySfO8dl_IybGLflF1QhHwhBkOyZg7
。返回的一项是 ID 为 的视频tDHxiDA1Y6s
。我期待看到 ID 为UCOfEKi7Qkc3g5XNoQSl3D8Q
某处的频道,但我没有看到。
我确实将UC1bSfMYJEqh7DTSOsbe_t8Q
其视为频道 ID,但这是播放列表所有者的频道 ID,而不是视频所有者的频道 ID。我还注意到在字段编辑器中应该有一个字段snippet.resourceId.channelId
,但是即使我选择了它来包含它,正如您在下面的示例结果中看到的那样,我在那里没有得到任何值。
有没有办法在没有第二次请求的情况下获取视频中包含的频道 ID?
这是我得到的结果:
{
"kind": "youtube#playlistItemListResponse",
"etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/rEUHufzTzfkJMLVrD2pBtEz5OWY\"",
"nextPageToken": "CAEQAA",
"pageInfo": {
"totalResults": 30,
"resultsPerPage": 1
},
"items": [
{
"kind": "youtube#playlistItem",
"etag": "\"XI7nbFXulYBIpL0ayR_gDh3eu1k/2VurTVExuTlDwFHQ3ULfjL-KM7U\"",
"id": "UExnTUd5U2ZPOGRsX0l5YkdMZmxGMVFoSHdoQmtPeVpnNy41NkI0NEY2RDEwNTU3Q0M2",
"snippet": {
"publishedAt": "2018-05-26T11:37:02.000Z",
"channelId": "UC1bSfMYJEqh7DTSOsbe_t8Q",
"title": "Unreal Tournament - Soundtrack (UMX)",
"description": "Music by Alexander \"Siren\" Brandon and Michiel van den Bos.\n\"enigma\", \"seeker\", \"seeker2\" by Daniel \"Basehead\" Gardopée.\n\"FireBreath\" by Tero \"Teque\" Kostermaa and Kaj-Eerik \"Nitro\" Komppa.\n\"mechanism eight\" by Andrew \"Necros\" Sega.\n\"Razorback // Unreal mix\" by Peter \"Skaven\" Hajba.\n\nTracks:\n00:00 BOTPACK #9(By Michiel)\n04:51 BOTMCA#10 (By Michiel)\n09:13 Cannonade\n11:11 Colossus (Michiel)\n15:30 The Course\n20:01 Room of Champions\n22:17 Shared Dig\n28:03 Into the darkness (Ending.umx)\n29:53 unreal add-on (enigma)\n33:19 -xTREMELY xECUTABLE-\n35:31 FireBreath\n38:48 Foregone Destruction\n43:02 Go Down\n46:05 Guardian\n47:50 Nightvision - Sandman/KFM\n51:58 Lock\n54:44 mechanism eight - necros\n1:01:38 Mission Landing\n1:05:53 Nether Animal\n1:10:56 Organic\n1:14:01 Phantom\n1:20:04 Razorback // Unreal mix\n1:24:56 RipCord\n1:27:08 Riverb3\n1:29:05 Run\n1:33:41 Dream Tear Down\n1:38:54 Save Me (SaveMe.umx)\n1:40:47 Save Me (Savemeg.umx)\n1:42:41 unreal add-on (seeker)\n1:46:34 unreal add-on (seeker2)\n1:50:01 Skyward Fire\n1:55:00 Into the darkness (Strider.umx)\n1:57:45 Submarinebase 2\n2:01:51 SuperFist\n2:03:51 Underworld II\n2:07:02 Unreal Tournament Menu\n2:09:04 Unreal Tournament Title\n2:10:33 Three Wheels Turning\n\nA few titles and credits information taken from the Liandri Archives.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/tDHxiDA1Y6s/default.jpg",
"width": 120,
"height": 90
},
"medium": {
"url": "https://i.ytimg.com/vi/tDHxiDA1Y6s/mqdefault.jpg",
"width": 320,
"height": 180
},
"high": {
"url": "https://i.ytimg.com/vi/tDHxiDA1Y6s/hqdefault.jpg",
"width": 480,
"height": 360
},
"standard": {
"url": "https://i.ytimg.com/vi/tDHxiDA1Y6s/sddefault.jpg",
"width": 640,
"height": 480
},
"maxres": {
"url": "https://i.ytimg.com/vi/tDHxiDA1Y6s/maxresdefault.jpg",
"width": 1280,
"height": 720
}
},
"channelTitle": "amcsi",
"playlistId": "PLgMGySfO8dl_IybGLflF1QhHwhBkOyZg7",
"position": 0,
"resourceId": {
"kind": "youtube#video",
"videoId": "tDHxiDA1Y6s"
}
},
"contentDetails": {
"videoId": "tDHxiDA1Y6s",
"videoPublishedAt": "2011-05-02T19:50:49.000Z"
}
}
]
}
解决方案
正如您所怀疑的,对 PlaylistItems 的调用会返回播放列表所有者的频道 ID。要获取播放列表中视频的原始频道 ID,您需要使用视频 ID 再次调用视频端点。
推荐阅读
- react-native - 返回 VersionCheck.getLatestVersion() 结果为字符串
- azure-storage - 无法将 VHD 文件上传到 Azure 存储
- java - Java 中“Mark & Sweep”的行为,尤其是对于 Future 对象
- linux - linux bash保存的变量为空
- css - 带有变换翻译的 CSS 动画
- node.js - 使用 s3 存储桶从后端(nodeJs)将文件上传到 DigitalOcean Spaces,仅访问前端(反应)
- python - Python TeleBot 媒体编辑
- sql - Oracle 11g 的 ALL_TABLES 表查找存在错误
- vue.js - Vue显示菜单功能
- python - Python内置max函数抛出'dict'对象没有列表类型对象的属性'max'