使用頻道 ID

Jeff Posnick,YouTube 開發人員關係部門 – 2013 年 6 月

經過一年以上的時間,您可以將 Google+ 個人資料與 YouTube 頻道連結,我們也這篇網誌文章說明瞭部分個人資料 API 回應因資料連結變更而產生的變化情形。更棒的是,如果新的 YouTube 頻道沒有與傳統的 YouTube 使用者名稱建立關聯,可以改用新的 YouTube 頻道,並遭到 Google+ 個人資料永久辨別。網誌文章中大部分的資訊仍適用,但這項額外缺點是會對 YouTube 頻道造成一些基本假設 (例如每個頻道都會與特定的 YouTube 使用者名稱建立關聯),因此我們接著想做一些額外的最佳做法,以便編寫適用於所有頻道版本的程式碼。

Data API v3 中的頻道 ID

所有與頻道合作的 v3 作業都是使用頻道 ID 來識別這些頻道。特定 YouTube 使用者的頻道 ID 在 API v2 和 v3 中相同,可簡化不同版本之間的遷移作業。對於先前使用頻道 ID 將 API 使用者名稱傳遞給 API 方法的開發人員來說,對頻道 ID 的整個依賴並不容易,但 v3 專門用於處理擁有和無舊使用者名稱的管道,也就是說,頻道 ID 在所有位置都是使用頻道 ID。

如果您使用 v3,而且想擷取與目前授權使用者對應的頻道 ID,可以呼叫 channels.list(part="id", mine=true) 方法。這相當於在第 2 版中要求 default 使用者的頻道個人資料。

如果您發現自己使用了任何舊版 YouTube 使用者名稱,且需要使用 API v3 將其轉譯為頻道 ID,可以向 API 發出 channels.list(part="id", forUsername="username") 呼叫。

如果您知道顯示名稱,且想找到對應的頻道,不妨使用 search.list(part="snippet", type="channel", q="display name") 方法。顯示名稱可能重複,因此請做好回應,以便處理呼叫回應中傳回多個項目的可能性。

Data API v2 中的頻道 ID

注意:YouTube Data API (v2) 已於 2014 年 2 月 26 日淘汰,此 API 已停用。使用 v2 API 的應用程式應立即遷移至第 3 版。

開發人員使用舊版 Data API v2 時,最需要注意的事項,需要注意,並非所有 YouTube 頻道都有專屬的使用者名稱。幸運的是,每個 YouTube 頻道都一定會有相關聯的頻道 ID,並以 <yt:channelId> 標記中的值表示,這也是我們建議開發人員採用的名稱,而非使用者名稱。舉例來說,如果您的資料庫會將 YouTube 使用者名稱對應至該頻道的資訊,舊項目應該會繼續運作。(既有的頻道不會失去使用者名稱)。然而,隨著時間過去,影片越來越容易用頻道識別名稱來運作。

使用者名稱和頻道 ID 是由數個因素簡化。首先,Data API v2 會在要求網址接受 YouTube 使用者名稱時接受頻道 ID,也就是說,你可以將頻道 ID 直接換成現有程式碼。舉例來說,由於 UC_x5XG1OV2P6uZZ5FSM9Ttw 的頻道是採用舊版使用者名稱 GoogleDevelopers 的頻道 ID,因此以下兩個網址是對等的 API 要求:

https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1

另請注意,每次建立「通過驗證」的 v2 要求時,您就不必在建立要求網址時納入授權頻道的使用者名稱。您隨時可以使用 default 值來替代使用者名稱 (或頻道 ID)。舉例來說,如要擷取目前授權使用者的上傳影片上傳動態饋給,可以使用 https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1