Jeff Posnick, YouTube Geliştirici İlişkileri – Haziran 2013
Google+ profillerini YouTube kanallarına bağlama özelliği bir yıldan uzun süredir kullanılabiliyor. Bu profil bağlantısı sonucunda Data API v2 yanıtlarından bazılarının nasıl değiştiği hakkında blog yazısı yayınlamıştık. Yakın zamanda, ilişkili geleneksel bir YouTube kullanıcı adı olmayan ve yalnızca Google+ profilleriyle tanımlanan yeni YouTube kanalları oluşturmak mümkün hale geldi. Bu blog yayınındaki bilgilerin çoğu hâlâ geçerli olsa da bu ek ayrıntı, YouTube kanallarıyla ilgili bazı temel varsayımların (ör. her kanalın her zaman benzersiz bir YouTube kullanıcı adıyla ilişkilendirileceği) geçersiz kılınmasına neden oluyor. Bu nedenle, tüm kanal türleriyle çalışan kod yazmak için bazı ek en iyi uygulamalarla ilgili bilgi vermek istedik.
Data API v3'teki kanal kimlikleri
Kanallarla çalışan tüm v3 işlemleri, kanal kimliklerini yalnızca bu kanalları tanımlamak için kullanır. Belirli bir YouTube kullanıcısının kanalının kimliği, API'nin hem v2 hem de v3 sürümünde aynıdır. Bu sayede, sürümler arasında geçiş yapmak kolaylaşır. Kanal kimliklerine tamamen güvenmek, daha önce YouTube kullanıcı adlarını API yöntemlerine aktarmaya alışmış geliştiriciler için kafa karıştırıcı olabilir. Ancak v3, eski kullanıcı adlarına sahip ve sahip olmayan kanalları aynı şekilde ele alacak şekilde tasarlanmıştır. Bu da her yerde kanal kimliklerinin kullanılması gerektiği anlamına gelir.
3. sürümü kullanıyorsanız ve şu anda yetkili kullanıcıya karşılık gelen kanal kimliğini almak istiyorsanız channels.list(part="id", mine=true)
yöntemini çağırabilirsiniz. Bu, v2'de default
kullanıcısının kanal profilini istemeye eşdeğerdir.
API'nin 3. sürümünü kullanarak kanal kimliğine dönüştürmeniz gereken rastgele bir eski YouTube kullanıcı adıyla karşılaşırsanız API'ye channels.list(part="id", forUsername="username")
çağrısı gönderebilirsiniz.
Yalnızca bir görünen adı biliyorsanız ve ilgili kanalı bulmak istiyorsanız search.list(part="snippet", type="channel", q="display name")
yöntemi işinize yarayabilir. Görünen adlar benzersiz olmadığından, çağrının yanıtta birden fazla öğe döndürme olasılığına hazırlıklı olmalısınız.
Data API v2'deki kanal kimlikleri
Not: YouTube Data API (v2) için destek 26 Şubat 2014'ten beri sonlandırılmıştır ve API reddedilmiştir. Hâlâ 2. sürüm API'yi kullanan uygulamalar derhal 3. sürüm API'ye taşınmalıdır.
Eski Data API v2 sürümünü kullanan geliştiricilerin dikkat etmesi gereken en önemli nokta, her YouTube kanalının benzersiz bir kullanıcı adına sahip olmadığını bilmektir. Neyse ki her YouTube kanalının, <yt:channelId>
etiketindeki değerle temsil edilen benzersiz bir kanal kimliği vardır. Geliştiricilerin, kullanıcı adı yerine bu değeri kullanmalarını öneririz. Örneğin, YouTube kullanıcı adlarını ilgili kanalla ilgili bilgilerle eşleyen bir veritabanınız varsa eski girişleriniz çalışmaya devam eder. (Mevcut kanalların kullanıcı adları değişmez.) Ancak zaman geçtikçe, kullanıcı adıyla benzersiz şekilde tanımlanamayan kanallarla çalışmanız gerekme olasılığı giderek artacaktır.
Kullanıcı adlarından kanal kimliklerine geçişi kolaylaştıran birkaç faktör vardır. Öncelikle Data API v2, YouTube kullanıcı adlarını kabul ettiği her yerde istek URL'lerinde kanal kimliklerini kabul eder. Bu sayede, mevcut kodunuzda kanal kimliğini sorunsuz bir şekilde değiştirebilirsiniz. Örneğin, UC_x5XG1OV2P6uZZ5FSM9Ttw
eski kullanıcı adı GoogleDevelopers
olan kanalın kanal kimliği olduğundan aşağıdaki iki URL eşdeğer API istekleridir:
https://gdata.youtube.com/feeds/api/users/GoogleDevelopers?v=2.1
https://gdata.youtube.com/feeds/api/users/UC_x5XG1OV2P6uZZ5FSM9Ttw?v=2.1
Kimliği doğrulanmış v2 istekleri gönderirken istek URL'lerini oluştururken yetkili kanalın kullanıcı adını eklemeniz gerekmez. Kullanıcı adı (veya kanal kimliği) yerine her zaman default
değerini kullanabilirsiniz. Örneğin, şu anda yetkili kullanıcının video yüklemeleri feed'ini almak istiyorsanız bunu https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1
adresinden yapabilirsiniz.