2016-05-23 72 views
0

我瀏覽過YouTube API文檔,但據我所知,無法有效地從多個YouTube頻道請求信息(例如最近上傳的視頻列表)。如何在一次API調用中請求來自多個YouTube頻道的最近視頻?

根據我的理解,需要做的第一件事就是獲取每個YouTube頻道的「上傳」播放列表的播放列表ID。

https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=OneDirectionVEVO&key={YOUR_API_KEY} 

然後通過使用先前檢索的播放列表ID獲取上傳的視頻。

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&playlistId=UUbW18JZRgko_mOGm5er8Yzg&key={YOUR_API_KEY} 

這是每個通道兩個請求,如果它只是一個或兩個通道,但不是數百個通道,那就沒問題了。

如何將所有這些請求有效地分組爲一個API調用?

回答

1

您可以通過使用Batch ProcessingYouTube Data API支持批處理,enablign你有single API request執行多達50個操作,而不是提交每個單獨的操作一個單獨的請求中請求在一個API調用多個YouTube頻道。批量處理請求可以結合多個查詢(GET),插入(POST),更新(PUT)和刪除(DELETE)操作。每個操作都包含在請求中的標籤中。

要提交批處理請求,請發送POST請求到批處理URL。每個Feed都有自己的批量網址,當您向該URL提交請求時,您可以對該Feed中的任何條目執行API操作。供稿的批量網址出現在<link>標記中,其rel屬性值爲http://schemas.google.com/g/2005#batch。該標籤是該Feed的標籤的子標籤。

<feed xmlns='http://www.w3.org/2005/Atom' ...> 
<id>https://gdata.youtube.com/feeds/users/USER_ID/playlists</id> 
... 
<link rel='http://schemas.google.com/g/2005#batch' 
type='application/atom+xml' 
href='https://gdata.youtube.com/feeds/api/users/USER_ID/playlists/batch?v=2'/>