Bu sayfada, YouTube Data API'ye yönelik örnek istekler gösterilmektedir. YouTube Data API'yi kullanarak videolar, kanallar ve oynatma listeleri gibi YouTube kaynaklarını alıp işleyebilirsiniz. Her örnek, Google API Gezgini'ne bağlanır ve onu doldurur. Böylece örneği çalıştırıp yanıtı görebilirsiniz.
YouTube Data API'yi kullanarak içerik yükleme hakkında bilgi edinmek için Devam Ettirilebilir Yüklemeler başlıklı makaleyi inceleyin.
Genel Bakış
Sunumun net olması için bu sayfadaki örneklerde her isteğin ayırt edici öğeleri gösterilir ve Veri API'si isteklerini işleyen ana makinenin ana URL'si (https://www.googleapis.com/youtube/v3) kısaltılır. İstekleri örneklerin bağlamı dışında yapmak için tam URL'yi eklemeniz gerekir.
Örneğin, bu sayfada görünen örnek bir istek aşağıda verilmiştir:
GET {base-URL}/channels?part=contentDetails &mine=true
Bu isteğin tam URL'si:
GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails &mine=true
İsteklerin birçoğu, yalnızca YouTube kanalının sahibinin erişebileceği verileri (ör. abone listesi) alır. Bu istekler, kanal sahibinin Google API Gezgini'ne kendi adına YouTube Data API istekleri gerçekleştirme izni vermesini gerektirir. (Özel kanal verilerine erişimi yetkilendirme hakkında ayrıntılı bilgi için OAuth 2.0 Kimlik Doğrulamasını Uygulama başlıklı makaleyi inceleyin.) API Gezgini'ne bağlandıktan sonra OAuth 2.0 kullanarak istekleri yetkilendir düğmesini tıklayın. Bu adım, API Gezgini'ni sahibin adına istekte bulunması için yetkilendirir. Ayrıca, API Gezgini'nin gerçekleştirebileceği istek türlerini belirten yetkilendirme kapsamını da seçersiniz.
Her isteğe verilen yanıt, bir YouTube kaynağının JSON gösterimidir. İstekteki part parametresi, kaynağın hangi bölümlerinin yanıta dahil edileceğini belirtir. Parametre, yanıta dahil edilmesi gereken bir veya daha fazla üst düzey (iç içe yerleştirilmemiş) kaynak özelliğini tanımlar. Örneğin, bir video kaynağının bazı bölümleri şunlardır:
- snippet
- contentDetails
- oynatıcı
- istatistikler
- durum
Bu bölümlerin tümü, iç içe yerleştirilmiş özellikler içeren nesnelerdir. Bu nesneleri, API sunucusunun alabileceği (veya alamayacağı) meta veri alanları grupları olarak düşünebilirsiniz. Bu nedenle, part parametresi, uygulamanızın gerçekten kullandığı kaynak bileşenlerini seçmenizi gerektirir. Daha fazla bilgi için YouTube Data API'yi kullanmaya başlama başlıklı makaleyi inceleyin.
Kanal bilgilerini alma
Bu istek, kimliği doğrulanmış kullanıcıya ait kanallarla ilgili ayrıntıları almak için channels.list yöntemini kullanır.
GET {base_URL}/channels?part=contentDetails &mine=true
Bu isteğe verilen yanıt, kimliği doğrulanmış kullanıcının kanalının kanal kimliğini ve contentDetails değerini içerir. contentDetails, kanalla ilişkili, sistem tarafından oluşturulan çeşitli oynatma listelerini içerir. Sonraki isteklerin çoğu kanal kimliğini veya oynatma listesi kimliklerinden birini gerektirdiğinden bunları kaydetmeniz önemlidir.
{
"id": {CHANNEL_ID},
"kind": "youtube#channel",
"etag": etag,
"contentDetails": {
"relatedPlaylists": {
"likes": {LIKES_PLAYLIST_ID},
"favorites": {FAVORITES_PLAYLIST_ID},
"uploads": {UPLOADS_PLAYLIST_ID},
"watchHistory": {WATCHHISTORY_PLAYLIST_ID},
"watchLater": {WATCHLATER_PLAYLIST_ID}
},
"googlePlusUserId": string
},
}Yüklenen videolar ve sistem tarafından oluşturulan oynatma listeleri
YouTube, yüklenen tüm videoları kanalla ilişkili bir oynatma listesine ekler. Yüklenen videoların listesini almak için kanal bilgileriyle ilgili yukarıda gösterilen yanıtta döndürülen "yüklemeler" oynatma listesini sorgular ve bu oynatma listesindeki videoları almak için playlistItems.list yöntemini kullanırsınız.
Google API Gezgini'nde aşağıdaki örnek isteği yürütmeden önce {UPLOADS_PLAYLIST_ID} değerini önceki istekteki oynatma listesi kimliğiyle değiştirin.
GET {base_URL}/playlistItems?part=contentDetails &playlistId={UPLOADS_PLAYLIST_ID}
Döndürülen her öğenin "id" değerinin, öğenin playlistItem kimliği olduğunu unutmayın. Oynatma listesi öğesinin video kimliği, contentDetails bölümündeki videoId değeridir.
Kanal bilgileri yanıtındaki ilgili oynatma listesi kimliğini değiştirerek yukarıdaki isteği kullanıp bir kullanıcının favoriler, beğeniler, izleme geçmişi veya daha sonra izle listelerini alabilirsiniz.
Kullanıcı tarafından oluşturulan oynatma listeleri
Bu istek, kimliği doğrulanmış kanalla ilişkili oynatma listelerini almak için playlists.list yöntemini kullanır. Bu isteğin, kanal bilgilerinde yer alan (yüklemeler, izleme geçmişi vb.) sistem tarafından oluşturulan oynatma listelerini almadığını unutmayın. Yalnızca kullanıcı tarafından oluşturulan oynatma listelerini alır.
GET {base_URL}/playlists?part=snippet &mine=true
Oynatma listesi kimliğini aldıktan sonra önceki bölümde gösterilen isteği kullanarak oynatma listesindeki öğeleri alabilirsiniz.
Kimlik doğrulama olmadan bir kanalın herkese açık oynatma listeleri hakkında bilgi isteyebilirsiniz. Kimliği doğrulanmamış bir istek gönderdiğinizde, istekte bulunan uygulamanın benzersiz API anahtarını belirten key bağımsız değişkenini eklemeniz gerekir. Örneğin, bu istek GoogleDevelopers kanalıyla ilişkili oynatma listelerini alır.
GET {base_URL}/playlists?part=snippet &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw &key={YOUR_API_KEY}
Abonelikleri Al
subscription kaynağı, bir YouTube kullanıcısı (abone) ile kanal arasındaki ilişkiyi tanımlar. subscriptions.list yöntemi, isteğe eklediğiniz parametrelere bağlı olarak belirli bir kanalın abonelerini veya belirli bir kullanıcının aboneliklerini alır.
Kanal aboneleri
Bu istek, kimliği doğrulanmış kanalın abonelerinin listesini alır.
GET {base_URL}/subscriptions?part=snippet &mySubscribers=true
Kullanıcı abonelikleri
Aboneleri listeleyen yöntem (subscriptions.list), kullanıcının abone olduğu kanalları listelemek için de kullanılabilir. Bu istek, kimliği doğrulanmış kullanıcının abone olduğu YouTube kanallarının listesini almak için mine parametresini kullanır.
GET {base_URL}/subscriptions?part=snippet &mine=true
Kullanıcı etkinliğini alma
activity kaynağı, belirli bir kanalın veya kullanıcının YouTube'da gerçekleştirdiği bir işlem (ör. video yükleme, kanala abone olma) hakkında bilgi içerir. activities.list yöntemi, istek ölçütleriyle eşleşen bir kanal veya kullanıcıyla ilişkili işlemleri alır. Örneğin, belirli bir kanalla, kullanıcının abonelikleriyle veya kullanıcının özel YouTube ana sayfasıyla ilişkili işlemleri alabilirsiniz.
Belirli bir dönemdeki etkinlik
Bu istek, kimliği doğrulanmış kullanıcının Nisan 2013'te gerçekleştirdiği tüm işlemleri alır.
GET {base_URL}/activities?part=snippet,contentDetails &mine=true &publishedAfter=2013-04-01T00%3A00%3A00Z &publishedBefore=2013-05-01T00%3A00%3A00Z
Ana sayfa etkinliği
Bu istek, kimliği doğrulanmış kullanıcının YouTube ana sayfasında gösterilen özel etkinlik feed'ini alır.
GET {base_URL}/activities?part=snippet,contentDetails &home=true
YouTube videoları ve kanalları için görüntüleme istatistiklerini, popülerlik metriklerini ve demografik bilgileri almak için YouTube Analytics API'yi kullanırsınız. Örnek API İstekleri sayfasında, YouTube Analytics'ten yaygın raporların nasıl alınacağı gösterilir.
Ara
search.list yöntemi, belirtilen ölçütlere uyan YouTube videolarını, kanallarını veya oynatma listelerini aramanıza olanak tanır. Video özelliklerine, anahtar kelimelere veya konulara (ya da bunların bir kombinasyonuna) göre arama yapabilir ve sonuçları oluşturulma tarihi, görüntüleme sayısı veya derecelendirme gibi faktörlere göre sıralayabilirsiniz.
Diğer YouTube Data API istekleri gibi, search.list yöntemi de bir YouTube kaynağının JSON gösterimini döndürür. Ancak diğer YouTube kaynaklarının aksine, arama sonucu benzersiz kimliğe sahip kalıcı bir nesne değildir.
Birçok istek, herkese açık olarak kullanılabilen içerikleri aradığından kimlik doğrulama gerektirmez. Aşağıdaki örneklerden yalnızca ilki, özellikle "benim" videolarımı istediği için kimlik doğrulama gerektirir. Kimliği doğrulanmamış bir istek gönderdiğinizde, uygulamanızın benzersiz API anahtarını belirten key bağımsız değişkenini eklemeniz gerekir.
En çok görüntülenen videolarım
Bu istek, kimliği doğrulanmış kullanıcının tüm videolarını alır ve görüntüleme sayısına göre azalan düzende listeler.
GET {base_URL}/search?part=snippet &forMine=true &order=viewCount &type=video
Yerleştirilebilir yüksek çözünürlüklü videolar
Bu istek, belirli özelliklere sahip videoları (ör. diğer sitelere yerleştirilebilen yüksek çözünürlüklü videolar) arar. Sonuçları, puanlara göre azalan düzende listeler.
GET {base_URL}/search?part=snippet &order=rating &type=video &videoDefinition=high &videoEmbeddable=true &key={YOUR_API_KEY}
Belirli bir konuyla ilgili videolar
Bu istek, YouTube Data API ile ilgili ve altyazı içeren videolar için anahtar kelime araması yapar.
GET {base_URL}/search?part=snippet &q=YouTube+Data+API &type=video &videoCaption=closedCaption &key={YOUR_API_KEY}
Konuya dayalı arama
Belirli bir konuyla ilgili videoları aramanın daha gelişmiş bir yolu, anahtar kelimeler yerine Freebase konularını kullanmaktır. YouTube kanalı ve video kaynaklarının tümünde, kaynakla ilişkili Freebase konu kimliklerinin listesini içeren bir topicDetails nesnesi bulunur. Konuya dayalı arama, anahtar kelime aramasına göre daha akıllıca bir yaklaşımdır. Çünkü Freebase konusu, gerçek dünyadaki bir kavramın veya nesnenin tüm yönlerini temsil eder.
Freebase konusunu kullanarak arama yapmak için öncelikle Freebase API'yi kullanarak konu kimliğini almanız gerekir. Bu istek, konu kimliği /m/05z1_ olan Python için Freebase konusuyla ilişkili videoları döndürür.
GET {base_URL}/search?part=snippet &topicId=/m/05z1_ &type=video &key={YOUR_API_KEY}
Oynatma listesi veya kanal arama
Arama, videolarla sınırlı değildir. Oynatma listelerini veya kanalları da arayabilirsiniz. Bu istek, "futbol" anahtar kelimesiyle eşleşen oynatma listelerini alır.
GET {base_URL}/search?part=snippet &q=soccer &type=playlist &key={YOUR_API_KEY}
Futbol kanallarını bulmak istiyorsanız type parametresini değiştirmeniz yeterlidir.
GET {base_URL}/search?part=snippet &q=soccer &type=channel &key={YOUR_API_KEY}
Futbolla ilgili tüm içerikleri (kanallar, oynatma listeleri ve videolar) görmek istiyorsanız evrensel arama yapabilirsiniz. type parametresini atlarsanız istek, tüm türlerdeki içerikleri alır.
GET {base_URL}/search?part=snippet &q=soccer &key={YOUR_API_KEY}
Kaynak oluşturma ve güncelleme
Şimdiye kadar incelediğimiz isteklerin tümü, YouTube verilerini almak için HTTP GET yöntemini kullanıyor. YouTube Data API, video, oynatma listesi veya kanal gibi YouTube kaynaklarını oluşturmak ya da güncellemek için HTTP POST yöntemini de kullanır. Aşağıdaki isteklerde örnekler verilmiştir.
POST yöntemleri, oluşturulan veya güncellenen kaynağın JSON gösterimi olan bir Request body içerir. Google API Gezgini'nde etkileşimli bir araç kullanarak JSON temsilleri oluşturabilirsiniz.
Abonelik oluşturma
Bu istek, kimliği doğrulanmış kullanıcıyı GoogleDevelopers kanalına abone yapar. Başka bir deyişle, bir abonelik kaynağı oluşturur.
POST {base_URL}/subscriptions?part=snippet
Request body: { 'snippet': { 'resourceId': { 'kind': 'youtube#channel', 'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw' } } }
Oynatma listesi oluşturma
Bu istek, yeni bir herkese açık oynatma listesi oluşturur.
POST {base_URL}/playlists?part=snippet
Request body: { 'snippet': { 'title': 'New playlist', 'description': 'Sample playlist for Data API', } }
Oynatma listesine video ekleme
Oynatma listesi oluşturduğumuza göre şimdi listeye bir video ekleyelim. Bu istek, oynatma listesinin ('position': 0) başına bir video ekler.
POST {base_URL}/playlistItems?part=snippet Request body: { 'snippet': { 'playlistId': '{PLAYLIST_ID}', 'resourceId': { 'kind': 'youtube#video', 'videoId': '{VIDEO_ID}' } 'position': 0 } }