Örnek API İstekleri

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

YouTube Data API'yi kullanarak içerik yükleme hakkında bilgi edinmek için Devam ettirilebilir yüklemeler konusuna bakın.

Genel Bakış

Daha anlaşılır olması için bu sayfadaki örnekler, her bir isteğin ayırt edici öğelerini gösterir ve Data API isteklerini (https://www.googleapis.com/youtube/v3) işleyen ana makine için temel URL'yi kısaltır. Örneklerin bağlamı dışında bir istekte bulunmak için tam URL'yi eklemeniz gerekir.

Örneğin, şu sayfada göründüğü şekliyle bir örnek isteği aşağıda görebilirsiniz:

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

Taleplerin bazıları, abone listesi gibi yalnızca YouTube kanalının sahibinin erişebildiği verileri getirmektedir. Bu istekler için kanal sahibinin, Google API Gezgini'ne kendi adına YouTube Data API istekleri gerçekleştirme hakkı vermesi gerekir. (Gizli kanal verilerine erişim yetkisi verme hakkında ayrıntılı bilgi için OAuth 2.0 Kimlik Doğrulamasını Uygulama bölümüne bakın.) API Gezgini'ne bağlantı oluşturduktan sonra İstekleri OAuth 2.0 kullanarak 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 yetkilendirme 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 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, video kaynağının bazı bölümleri şunlardır:

  • snippet
  • contentDetails
  • oynatıcı
  • istatistikler
  • durum

Bu parçaların hepsi, 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 için uygulamanızın gerçekten kullandığı kaynak bileşenlerini seçmeniz gerekir.Daha fazla bilgi için YouTube Data API'yi Kullanmaya Başlama bölümüne bakın.

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ğini ve contentDetails bilgilerini içerir. contentDetails, kanalla ilişkilendirilmiş, sistem tarafından oluşturulmuş çeşitli oynatma listelerini içerir. Sonraki isteklerin çoğunda kanal kimliği veya oynatma listesi kimliklerinden biri istenir. Dolayısıyla 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şkili bir oynatma listesine ekler. Yüklenen videoların listesini almak için "yüklemeler"i sorgularsınız kanal bilgileri için yukarıda gösterilen yanıtta döndürülen oynatma listesi ve bu oynatma listesindeki videoları almak üzere playlistItems.list yöntemi kullanılır.

Aşağıdaki örnek isteği Google API Gezgini'nde 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 öğe için "id" değerinin, playlistItem kimliği olduğunu unutmayın. Oynatma listesi öğesinin video kimliği, contentDetails bölümündeki videoId öğesidir.

Kanal bilgileri yanıtındaki ilgili oynatma listesi kimliğini değiştirerek yukarıdaki isteği kullanarak bir kullanıcının favorilerini, beğenilerini, izleme geçmişini veya daha sonra izleme listelerini alabilirsiniz.

Kullanıcıların oluşturduğu 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, sistem tarafından oluşturulan oynatma listelerini (yüklemeler, WatchHistory vb.) almadığını unutmayın. Yalnızca kullanıcı tarafından oluşturulan oynatma listelerini getirir.

GET {base_URL}/playlists?part=snippet
                        &mine=true

Bir oynatma listesi kimliği oluşturduktan 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, isteği yapan uygulamaya ilişkin 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 getirir.

GET {base_URL}/playlists?part=snippet
                        &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw
                        &key={YOUR_API_KEY}

Abonelikleri Al

subscription kaynağı, YouTube kullanıcısı (abone) ile kanal arasındaki ilişkiyi tanımlar. subscriptions.list yöntemi, isteğe hangi parametreleri dahil ettiğinize bağlı olarak belirli bir kanalın abonelerini veya belirli bir kullanıcının aboneliklerini getirir.

Kanal aboneleri

Bu istek, kimliği doğrulanmış kanalın abonelerinin bir listesini getirir.

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

Kullanıcı abonelikleri

Aboneleri listeleyen aynı yöntem (subscriptions.list) bir 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 kaynakları, belirli bir kanalın veya kullanıcının YouTube'da gerçekleştirdiği video yükleme, kanala abone olma gibi işlemler hakkında bilgi içerir. activities.list yöntemi, istek ölçütleriyle eşleşen kanal veya kullanıcıyla ilişkilendirilmiş 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 getirir.

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ğrulanan kullanıcının YouTube ana sayfasında görüntülenen özel etkinlik feed'ini getirir. 

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

YouTube videoları ve kanallarıyla ilgili izleme istatistiklerini, popülerlik metriklerini ve demografik bilgileri almak için YouTube Analytics API'yi kullanabilirsiniz. Örnek API İstekleri sayfası, YouTube Analytics'ten sık kullanılan raporları nasıl alabileceğinizi gösterir.

search.list yöntemi, belirtilen ölçütlerle eşleşen YouTube videolarını, kanallarını veya oynatma listelerini aramanızı sağlar. Video özelliklerine, anahtar kelimelere veya konulara (ya da bunların bir kombinasyonuna) göre arama yapabilir ve sonuçları oluşturma 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. Bununla birlikte, diğer YouTube kaynaklarından farklı olarak arama sonucu, benzersiz bir kimliğe sahip kalıcı nesne değildir.

Birçok istek herkese açık içerikleri arar ve bu nedenle kimlik doğrulaması gerektirmez. Aşağıdaki örnekler arasından yalnızca ilki kimlik doğrulama gerektirir çünkü özellikle "my" videolar. Kimliği doğrulanmamış bir istek gönderdiğinizde, uygulamanız için 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ı getirir ve bunları, 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, yani diğer sitelere yerleştirilebilecek yüksek tanımlı videoları arar. Sonuçları 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 altyazı içeren videolar için bir anahtar kelime araması gerçekleştirir.

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ı aramak için daha gelişmiş bir yöntem olarak anahtar kelimeler yerine Freebase topics kullanılır. YouTube kanalı ve video kaynaklarının tümü, kaynakla ilişkili Freebase konu kimliklerinin listesini içeren bir topicDetails nesnesi içerir. Freebase konusu, gerçek dünyaya ait bir kavram veya şeyin tüm yönlerini temsil ettiğinden, konuya dayalı arama anahtar kelime aramasına göre daha akıllıdır.

Freebase konusu kullanarak arama yapmak için önce Freebase API'yi kullanarak konu kimliğini almanız gerekir. Bu istek, Python için Freebase konusuyla ilişkili ve konu kimliği /m/05z1_ olan 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 getirir.

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

Futbol kanallarını bulmayı tercih ederseniz 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) istiyorsanız evrensel bir arama yapabilirsiniz. type parametresini çıkarırsanız istek tüm türlerdeki içeriği alır

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

Kaynakları oluşturma ve güncelleme

Şu ana kadar incelediğimiz isteklerin tümü, YouTube verilerini almak için HTTP GET yöntemini kullanmaktadır. YouTube Data API; videolar, oynatma listeleri veya kanallar gibi YouTube kaynaklarını oluşturmak ya da güncellemek için HTTP POST'u kullanan yöntemler de sunar. Aşağıdaki isteklerde örnekler verilmiştir.

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

Abonelik oluşturma

Bu istek, kimliği doğrulanmış kullanıcıyı GoogleDevelopers kanalına abone yapar. 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 şimdi buna video ekleyelim. 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
      }
   }