YouTube API:获取 YouTube 频道的上传播放列表 ID
YouTube API: Get upload playlistID for YouTube Channel
我正在尝试根据频道的频道 ID 找出获取频道上传播放列表 ID 的最佳方法。例如。对于 channelID
的频道
UC9CuvdOVfMPvKCiwdGKL3cQ
对应的上传播放列表ID为
UU9CuvdOVfMPvKCiwdGKL3cQ
请注意第二个字符已从 "C" 更改为 "U"
我可以通过字符串操作进行这种转换,但我很好奇是否有更好、更简单的方法通过官方 youtube 找到上传播放列表 ID api。
下面是一些显示我的问题的 Kotlin 代码:
我可以通过以下 youtube api v3 搜索找到 "Game Grumps" 频道的 ChannelID:
val req = youtube.search().list("snippet");
req.key = {API_KEY}
req.q = "Game Grumps"
req.type = "channel"
val response = req.execute();
生成的频道 ID (response.items[0].snippet.channelId) 是 UC9CuvdOVfMPvKCiwdGKL3cQ
但是当我运行以下尝试获取频道上传的视频时,我必须使用转换后的ChannelID(以UU开头而不是UC开头)
val req = youtube.PlaylistItems().list("snippet")
req.playlistId = "UU9CuvdOVfMPvKCiwdGKL3cQ"
req.key = {API_KEY}
val response = req .execute()
如果我使用未转换的 "UC" channelID,我会收到以下错误:无法找到使用请求 playlistId
参数标识的播放列表。
除了用 "U" 替换第二个字符之外,还有什么更可靠的方法(例如使用 youtube API)将 ChannelID 转换为 PlaylistID(用于从该频道上传的内容) )?
我建议使用官方 Youtube API,而不是尝试操纵字符串。您可以按照说明 here:
获取 V3 中某个频道的所有已上传视频的视频 ID 的说明
- 获取你想要的频道的频道id(你可能只需要这样做一次,然后你就可以保存它)
- 使用search.list
- 将类型设置为频道
- 将 q 设置为您想要的频道名称
- 获取频道 ID(类似这样的内容:"channelId": "UC0X2VuXXXXXXXXXXXXXXXX")
- 使用步骤 1 中的频道 ID 获取频道上传的播放列表 ID(您可能只需要执行一次,然后就可以保存)
- 使用channels.list
- 将第 1 步中的 id 设置为 UC0X2VuXXXXXXXXXXXXXXXX
- 从 contentDetails 中获取上传密钥(类似这样的内容:"uploads":"UU0XXXXXXXXXXXXXXXXXXXX")
- 使用第 2 步中的播放列表 ID 通过播放列表中的播放列表项获取视频
- 使用playlistItems.list
- 将第 2 步中的播放列表 ID 设置为 UU0XXXXXXXXXXXXXXXXXXXX
- 遍历每个 PlaylistItem 并提取视频 ID
我正在尝试根据频道的频道 ID 找出获取频道上传播放列表 ID 的最佳方法。例如。对于 channelID
的频道UC9CuvdOVfMPvKCiwdGKL3cQ
对应的上传播放列表ID为
UU9CuvdOVfMPvKCiwdGKL3cQ
请注意第二个字符已从 "C" 更改为 "U"
我可以通过字符串操作进行这种转换,但我很好奇是否有更好、更简单的方法通过官方 youtube 找到上传播放列表 ID api。
下面是一些显示我的问题的 Kotlin 代码:
我可以通过以下 youtube api v3 搜索找到 "Game Grumps" 频道的 ChannelID:
val req = youtube.search().list("snippet");
req.key = {API_KEY}
req.q = "Game Grumps"
req.type = "channel"
val response = req.execute();
生成的频道 ID (response.items[0].snippet.channelId) 是 UC9CuvdOVfMPvKCiwdGKL3cQ
但是当我运行以下尝试获取频道上传的视频时,我必须使用转换后的ChannelID(以UU开头而不是UC开头)
val req = youtube.PlaylistItems().list("snippet")
req.playlistId = "UU9CuvdOVfMPvKCiwdGKL3cQ"
req.key = {API_KEY}
val response = req .execute()
如果我使用未转换的 "UC" channelID,我会收到以下错误:无法找到使用请求 playlistId
参数标识的播放列表。
除了用 "U" 替换第二个字符之外,还有什么更可靠的方法(例如使用 youtube API)将 ChannelID 转换为 PlaylistID(用于从该频道上传的内容) )?
我建议使用官方 Youtube API,而不是尝试操纵字符串。您可以按照说明 here:
获取 V3 中某个频道的所有已上传视频的视频 ID 的说明
- 获取你想要的频道的频道id(你可能只需要这样做一次,然后你就可以保存它)
- 使用search.list
- 将类型设置为频道
- 将 q 设置为您想要的频道名称
- 获取频道 ID(类似这样的内容:"channelId": "UC0X2VuXXXXXXXXXXXXXXXX")
- 使用步骤 1 中的频道 ID 获取频道上传的播放列表 ID(您可能只需要执行一次,然后就可以保存)
- 使用channels.list
- 将第 1 步中的 id 设置为 UC0X2VuXXXXXXXXXXXXXXXX
- 从 contentDetails 中获取上传密钥(类似这样的内容:"uploads":"UU0XXXXXXXXXXXXXXXXXXXX")
- 使用第 2 步中的播放列表 ID 通过播放列表中的播放列表项获取视频
- 使用playlistItems.list
- 将第 2 步中的播放列表 ID 设置为 UU0XXXXXXXXXXXXXXXXXXXX
- 遍历每个 PlaylistItem 并提取视频 ID