YouTube API:获取YouTube频道的上传播放列表ID

我试图找出获得频道上传播放列表ID给出频道的channelID的最佳方式。 例如,对于具有channelID的频道

UC9CuvdOVfMPvKCiwdGKL3cQ

相应的上传播放列表ID是

UU9CuvdOVfMPvKCiwdGKL3cQ

注意第二个字符已经从“C”变成了“U”

我可以通过字符串操作来完成这个转换,但是我很好奇,是否有更好的,不太好用的方法来通过官方的youtube API找到上传播放列表ID。

下面是一些显示我的问题的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参数的playlistId

而不是用“U”替换第二个字符,将ChannelID转换为PlaylistID(用于从该频道上载)的更可靠的方法是什么(例如,使用YouTube API)?

我会建议使用官方Youtube API,而不是试图操纵字符串。 你可以按照这里的说明:

有关在V3中获取所有上传视频的视频ID的说明

  1. 获取你想要的频道的频道ID(你可能只需要做一次,然后你就可以保存)
    • 使用search.list
    • 将类型设置为频道
    • 将q设置为您想要的频道的名称
    • 抓取频道ID(如下所示:“channelId”:“UC0X2VuXXXXXXXXXXXXXXXX”)
  2. 使用步骤1中的频道ID获取频道上传的播放列表ID(您可能只需要做一次,然后就可以保存)
    • 使用channels.list
    • 从步骤1中将ID设置为UC0X2VuXXXXXXXXXXXXXXXX
    • 从contentDetails中获取上传密钥(如下所示:“uploads”:“UU0XXXXXXXXXXXXXXXXXXXX”)
  3. 使用步骤2中的播放列表ID通过播放列表中的播放列表获取视频
    • 使用playlistItems.list
    • 将播放列表ID设置为步骤2中的UU0XXXXXXXXXXXXXXXXXXXX
    • 浏览每个PlaylistItem并取出视频ID