Kanal Kimlikleriyle Çalışma

Jeff Posnick, YouTube Geliştirici İlişkileri – Haziran 2013

Bir yıldan fazla süredir Google+ profillerini YouTube kanallarına bağlayabiliriz ve Data API v2 yanıtlarının bazılarının bu profil bağlantısının sonucunda nasıl değiştiği hakkında blog oluşturduk. Yakın zamanda, ilişkilendirildikleri geleneksel bir YouTube kullanıcı adı bulunmayan yeni YouTube kanalları oluşturulması mümkün oldu. Bu kanalların yerini yalnızca Google+ profilleri belirliyor. Bu blog yayınındaki bilgilerin büyük kısmı geçerliliğini koruyor ancak bu ekstra kırışıklık, YouTube kanallarıyla ilgili bazı temel varsayımları geçersiz kılıyor. Her biri benzersiz bir YouTube kullanıcı adıyla ilişkilendirilecek. Bu nedenle, tüm kanal türleriyle uyumlu kod yazma konusunda bazı ek en iyi uygulamaları sizinle paylaşmak istedik.

Data API v3'teki kanal kimlikleri

Kanallarla çalışan tüm v3 işlemleri, yalnızca bu kanalları tanımlamak için kanal kimliklerini kullanır. Belirli bir YouTube kullanıcısının kanalının kimliği, API'nin hem v2 hem de v3'ünde aynıdır ve sürümler arasındaki taşıma işlemlerini basitleştirir. Kanal kimliklerinin tamamen bu sisteme dayalı olması, daha önce YouTube kullanıcı adlarını API yöntemlerine iletmeye alışkın olan geliştiriciler için kafa karıştırıcı olabilir ancak v3, eski kullanıcı adlarına sahip olan ve olmayan kanalları aynı şekilde ele almak üzere tasarlanmıştır. Bu da kanal kimliklerini her yerde kullanma anlamına gelir.

v3 kullanıyorsanız ve şu anda yetkilendirilmiş 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 istemekle eşdeğerdir.

Kendinizi rastgele bir YouTube kullanıcı adıyla bulduğunuzda API'nin v3 sürümünü kullanarak kanal kimliğine çevirmeniz gerekiyorsa API'ye channels.list(part="id", forUsername="username") çağrısı yapabilirsiniz.

Yalnızca görünen adı biliyorsanız ve ilgili kanalı bulmak istiyorsanız search.list(part="snippet", type="channel", q="display name") yöntemini kullanabilirsiniz. Görünen adlar benzersiz olmadığından, çağrıda yanıtta birden fazla öğe döndürme olasılığına karşı hazırlıklı olmalısınız.

Data API v2'deki kanal kimlikleri

Not: YouTube Data API (2. sürüm) 26 Şubat 2014'ten itibaren kullanımdan kaldırılmıştır ve API kullanımdan kaldırılmıştır. Hâlâ v2 API kullanan uygulamalar, v3 API'ye hemen geçmelidir.

Eski Data API v2'yi kullanan geliştiriciler için en önemli çıkarım, her YouTube kanalının benzersiz bir kullanıcı adına sahip olmadığını bilmeniz gerektiğini unutmayın. Neyse ki her YouTube kanalının, kendisiyle ilişkilendirilmiş benzersiz bir kanal kimliği olacağı garanti edilir. Bu kimlik, <yt:channelId> etiketindeki değerle temsil edilir ve bu, geliştiricilerin kullanıcı adları yerine kullanmasını önerdiğimiz değerdir. Örneğin, YouTube kullanıcı adlarını söz konusu kanalla ilgili bilgilerle eşleştiren bir veritabanınız varsa eski girişleriniz çalışmaya devam edecektir. (Mevcut kanallar kullanıcı adlarını kaybetmez.) Ancak zaman geçtikçe, kullanıcı adıyla tanımlanamayan kanallarla çalışmanız gerekebilir.

Birkaç faktör, kullanıcı adlarından kanal kimliklerine geçişi basitleştirir. İlk olarak Data API v2, YouTube kullanıcı adlarını kabul ettiği her yerde URL'lerdeki kanal kimliklerini kabul eder. Diğer bir deyişle bir kanal kimliğini sorunsuz bir şekilde mevcut kodunuza değiştirebilirsiniz. Örneğin, UC_x5XG1OV2P6uZZ5FSM9Ttw, eski GoogleDevelopers kullanıcı adına sahip kanal için bir 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

Unutmayın, kimlik doğrulaması yapılmış v2 istekleri yaptığınızda, istek URL'leri oluştururken hiçbir zaman yetkili kanalın kullanıcı adını eklemeniz gerekmez. Bir kullanıcı adı (veya kanal kimliği) yerine her zaman default değerini kullanabilirsiniz. Bu nedenle, örneğin şu anda yetkili olan kullanıcı için video yüklemeleri feed'ini almak istiyorsanız bunu https://gdata.youtube.com/feeds/api/users/default/uploads?v=2.1 sayfasında yapabilirsiniz.