2017-09-11 213 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 –

相關問題