2017-09-11 215 views
0

我试图找出获得频道上传播放列表ID的最佳方式,因为该频道的频道ID不同。例如。用于与的channelID沟道YouTube API:获取YouTube频道的上传播放列表ID

UC9CuvdOVfMPvKCiwdGKL3cQ

相应上传playlistID是

UU9CuvdOVfMPvKCiwdGKL3cQ

通知第二个字符已经从“C”变为“U”

我可以通过执行此变换字符串操作,但我很好奇,如果有更好的,不太冒险的方式通过官方的YouTube API找到上传播放列表ID。

下面是一些科特林代码,显示我的问题:

我能找到的channelID通过以下YouTube API V3搜索“游戏Grumps”频道:

  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”的channelID,我得到以下错误:与请求playlistId参数无法找到确定的播放列表。

除了用“U”替换第二个字符,将ChannelID转换为PlaylistID(用于从该通道上传)的更强大的方法是什么(例如使用YouTube API)?

回答

1

我会建议使用官方Youtube API,而不是试图操纵字符串。您可以按照指示here

指令来获取所有上传的视频的视频ID的通道V3

  1. 获取你想要的通道的通道ID(您可能只需要做到这一点一次,然后你可以将它保存)
    • 使用search.list
    • 类型设置为通道
    • 集q到信道哟名ü要
    • 抓住频道ID(是这样的:“渠道ID”:“UC0X2VuXXXXXXXXXXXXXXXX”)
  2. 获得使用频道ID步骤1中的通道上传,播放列表ID(您可能只需要做的这一次,那么你可以保存它)
    • 使用渠道。名单
    • 集ID来UC0X2VuXXXXXXXXXXXXXXXX从步骤1
    • 抓住从contentDetails的上传键(是这样的:“上传”:“UU0XXXXXXXXXXXXXXXXXXXX”)
  3. 使用Get通过playlistitems的视频在播放列表中从第2步
    • 使用playlistItems.list
    • 集playlistId播放列表ID从步骤通过每个PlaylistI UU0XXXXXXXXXXXXXXXXXXXX 2
    • 围棋TEM和拔出视频ID
+0

完美!作为参考,第2步中的“类似于上传”的内容是contentDetails.relatedPlaylists.uploads –

相关问题