我试图找出鉴于频道的频道ID的最佳方法来获取频道的上传playlistid。例如。对于通道
的通道uc9cuvdovfmpvkciwdgkl3cq
相应的上传playlistid是
uu9cuvdovfmpvkciwdgkl3cq
请注意,第二个字符已从" C"变为" U"
我可以通过字符串操纵进行此转换,但是我很好奇是否有一种更好,少的方法可以通过官方YouTube API找到上传播放列表ID。
这是一些kotlin代码,显示了我的问题:
我可以通过以下YouTube API V3搜索找到"游戏脾气暴躁"频道的频道ID:
val req = youtube.search().list("snippet");
req.key = {API_KEY}
req.q = "Game Grumps"
req.type = "channel"
val response = req.execute();
生成的通道ID(响应。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"频道ID,我会收到以下错误:找不到请求playlistId
参数的播放列表。
而不是仅仅用" u"替换第二个字符,而是将ChannelID转换为playlistid(用于该通道的上传)的更健壮的方法(例如,使用YouTube API)是什么?
我建议使用官方的YouTube API,而不是尝试操纵字符串。您可以在此处遵循说明:
指令获取V3
中所有上传视频的视频ID- 获取所需的频道的通道ID(您可能只需要一次执行此操作,然后可以保存)
- 使用search.list
- 将类型设置为通道
- 将Q设置为所需的频道的名称
- 获取通道ID(类似的内容:" ChannelID":" UC0X2VUXXXXXXXXXXXXXXXX")
- 从步骤1开始使用频道ID获取通道上传的播放列表ID(您可能只需要一次执行此操作,然后可以保存它)
- 使用channels.list
- 将ID设置为uc0x2vuxxxxxxxxxxxxxxxxx从步骤1
- 从ContentDetails获取上传键(类似的内容:"上传":" UU0XXXXXXXXXXXXXXXXXXXXXXXX")
- 使用播放列表中的播放列表中的播放列表ID从步骤2中获取视频
- 使用playlistitems.list
- 将playlistid设置为uu0xxxxxxxxxxxxxxxxxxxxxxx
- 浏览每个播放列表并拔出视频ID