Örnek API İstekleri

Bu sayfada, YouTube Data API'ye yapılan örnek istekler gösterilir. Videolar, kanallar ve oynatma listeleri gibi YouTube kaynaklarını alıp değiştirmek için YouTube Data API'yi kullanırsınız. Her örnek Google API Gezgini'ne bağlanır ve doldurulur. Böylece örneği yürütebilir ve yanıtı görebilirsiniz.

YouTube Data API'sini kullanarak içerik yükleme hakkında bilgi edinmek için Devam ettirilebilir Yüklemeler bölümüne bakın.

Genel bakış

Sunumun netliği için bu sayfadaki örnekler her isteğin ayırt edici öğelerini gösterir ve Data API isteklerini (https://www.googleapis.com/youtube/v3) işleyen ana makinenin temel URL'sini kısaltır. İsteği örneklerin bağlamı dışında yapmak için tam URL'yi eklemeniz gerekir.

Örneğin, bu sayfada görünen örnek bir istek vardır:

GET {base-URL}/channels?part=contentDetails
                       &mine=true

Bu isteğin tam URL'si şudur:

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails
                                                  &mine=true

İsteklerin bazıları, abone listesi gibi yalnızca YouTube kanalının sahibi tarafından erişilebilen verileri alır. Bu istekler, kanal sahibinin Google API Gezgini'ne kendi adına YouTube Data API istekleri gerçekleştirme hakkı vermesini gerektirir. (Özel kanal verilerine erişimi yetkilendirmeyle ilgili ayrıntılar için OAuth 2.0 Kimlik Doğrulamasını Uygulama başlıklı makaleyi inceleyin.) API Gezgini'ne bağlantı oluşturduktan sonra OAuth 2.0 kullanarak istekleri yetkilendir düğmesini tıklayın. Bu adım, API Gezgini'ne sahip adına istek yapma yetkisi verir. Ayrıca, API Gezgini'nin gerçekleştirebileceği istek türlerini belirten yetkilendirmenin kapsamını da seçersiniz.

Her isteğe verilen yanıt, bir YouTube kaynağının JSON temsilidir. İstekteki part parametresi, kaynağın hangi bölümlerinin yanıta dahil edildiğini belirtir. Parametre, yanıta eklenmesi gereken bir veya daha fazla üst düzey (iç içe yerleştirilmemiş) kaynak özelliğini tanımlar. Örneğin, video kaynağının bazı bölümleri şunlardır:

  • snippet
  • içerikAyrıntılar
  • oyuncu
  • istatistikler
  • durum

Bu bölümlerin tümü, iç içe yerleştirilmiş özellikler içeren nesnelerdir. Bu nesneleri, API sunucusunun alabileceği (veya almayabileceği) meta veri alanı grupları olarak düşünebilirsiniz. Bu nedenle part parametresi, uygulamanızın kullandığı kaynak bileşenlerini seçmenizi gerektirir.Daha fazla bilgi için YouTube Data API'yi Kullanmaya Başlama'yı 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ı için kanal kimliği ve contentDetails içerir. contentDetails, kanalla ilişkilendirilmiş ve sistem tarafından oluşturulmuş çeşitli oynatma listelerini içerir. Sonraki isteklerin çoğu için kanal kimliği veya oynatma listesi kimliklerinden biri gerekir. Bu nedenle, bunların kaydedilmesi ö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şkilendirilmiş bir oynatma listesine ekler. Yüklenen videoların listesini görmek istiyorsanız oynatma listesi için yukarıda verilen yanıtta döndürülen "yüklemeler" adlı oynatma listesini, oynatma listesindeki videoları almak için playlistItems.list yöntemini kullanarak sorgulamalısınız.

Google API Gezgini'nde aşağıdaki örnek isteği yürütmeden önce {UPLOADS_PLAYLIST_ID} öğesini önceki istekten alınan 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 oynatma listesi öğesi kimliği olduğunu unutmayın. Oynatma listesi öğesinin video kimliği, contentDetails bölümündeki videoId'dir.

Kanal bilgisi yanıtındaki ilgili oynatma listesi kimliğini değiştirerek bir kullanıcının favorilerini, beğenilerini, izleme geçmişini veya daha sonra izle listelerini bu istekle 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 bilgilerine (yüklemeler, izleme geçmişi vb.) dahil edilen, 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

Bir oynatma listesi kimliğine sahip olduğunuzda, önceki bölümde gösterilen isteği kullanarak oynatma listesinden öğeleri alabilirsiniz.

Kimlik doğrulaması yapmadan kanalın herkese açık oynatma listeleri hakkındaki bilgileri isteyebilirsiniz. Kimliği doğrulanmayan bir istek gönderirken, istekte bulunan uygulama için 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 bir 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.

Kanala aboneleri

Bu istek, kimliği doğrulanmış kanala abone olan kullanıcıların listesini alır.

GET {base_URL}/subscriptions?part=snippet
                            &mySubscribers=true

Kullanıcı abonelikleri

Abonelerin listelendiği yöntem (subscriptions.list), kullanıcının abone olduğu kanalları listelemek için 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 yaptığı işlem (video yükleme, kanala abone olma vb.) hakkında bilgi içerir. activities.list yöntemi, bir kanal veya kullanıcıyla ilişkili işlemleri, istek ölçütleriyle eşleşen 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.

Dönem içindeki etkinlikler

Bu istek, kimliği doğrulanmış kullanıcının Nisan 2013'te yaptığı 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örüntülenen özel etkinlik feed'ini alır. 

GET {base_URL}/activities?part=snippet,contentDetails
                         &home=true

YouTube videoları ve kanalları için izleme istatistiklerini, popülerlik metriklerini ve demografik bilgilerini almak için YouTube Analytics API'yi kullanırsınız. Örnek API İstekleri sayfasında, sık kullanılan raporların YouTube Analytics'ten nasıl alınacağı gösterilir.

search.list yöntemi, belirtilen ölçütlerle eşleşen YouTube videolarını, kanallarını veya oynatma listelerini aramanıza olanak tanır. Video özelliklerine, anahtar kelimelere veya konulara (ya da bunların kombinasyonuna) göre arama yapabilir ve sonuçları oluşturma tarihi, görüntüleme sayısı ya da derecelendirme gibi faktörlere göre sıralayabilirsiniz.

Diğer YouTube Data API isteklerinde olduğu gibi search.list yöntemi, bir YouTube kaynağının JSON temsilini döndürür. Bununla birlikte, diğer YouTube kaynaklarından farklı olarak, arama sonucu benzersiz kimliğe sahip kalıcı bir nesne değildir.

Birçok istek herkese açık içerikler için arama yaptığından kimlik doğrulama gerektirmez. Aşağıdaki örneklerde, özellikle "benim" videolarım için de istekte bulunduğundan yalnızca ilki kimlik doğrulaması gerektirir. Kimliği doğrulanmamış bir istek gönderirken uygulamanız için benzersiz API anahtarını belirten key bağımsız değişkenini eklemeniz gerekir.

En çok izlenen videolarım

Bu istek, kimliği doğrulanmış kullanıcının tüm videosunu 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ı, diğer sitelere yerleştirilebilecek yüksek çözünürlüklü videoları arar. Sonuçlar, azalan düzende sıralanarak listelenir.

GET {base_URL}/search?part=snippet
                     &order=rating
                     &type=video
                     &videoDefinition=high
                     &videoEmbeddable=true
                     &key={YOUR_API_KEY}

Belirli bir konudaki videolar

Bu istek, YouTube Data API ile ilgili altyazılar 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 göre arama

Belirli bir konudaki videoları aramanın daha gelişmiş bir yolu, anahtar kelimeler yerine Freebase konuları 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ından daha akıllıdır, çünkü Serbest Konu, gerçek dünyadan bir kavramın veya nesnenin tüm yönlerini temsil eder.

Freebase konusu kullanarak arama yapmak için öncelikle Freebase API'sini kullanarak konu kimliğini almanız gerekir. Bu istek, Python'da konu kimliği /m/05z1_ olan 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 özelliği 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) evrensel arama yapabilirsiniz. type parametresini çıkarırsanız istek, tüm içerik türlerini alır

GET {base_URL}/search?part=snippet
                     &q=soccer
                     &key={YOUR_API_KEY}

Kaynak oluşturma ve güncelleme

Şu ana kadar incelediğimiz isteklerin tümü, YouTube verilerini almak için HTTP GET yöntemini kullanıyor. YouTube Data API'si videolar, oynatma listeleri veya kanallar gibi YouTube kaynakları oluşturmak veya güncellemek için HTTP POST kullanan yöntemler de sunar. Aşağıdaki istekler örnek olarak verilmiştir.

POST yöntemleri arasında, oluşturulan veya güncellenen kaynağın JSON gösterimi olan Request body bulunmaktadır. Etkileşimli bir araç kullanarak Google API Gezgini'nde JSON temsilleri oluşturabilirsiniz.

Abonelik oluşturma

Bu istek, kimliği doğrulanmış kullanıcıyı GoogleDevelopers kanalına abone eder. Diğer 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 bu oynatma listesine video ekleyebiliriz. Bu istek, oynatma listesinin başına bir video ekler ('position': 0).

POST {base_URL}/playlistItems?part=snippet
  Request body:
  {
    'snippet': {
      'playlistId': '{PLAYLIST_ID}', 
      'resourceId': {
          'kind': 'youtube#video',
          'videoId': '{VIDEO_ID}'
        }
     'position': 0
      }
   }