Search: list

API isteğinde belirtilen sorgu parametreleriyle eşleşen arama sonuçlarının koleksiyonunu döndürür. Varsayılan olarak, bir arama sonucu kümesi eşleşen video, channel ve playlist kaynaklarını tanımlar, ancak sorguları yalnızca belirli bir kaynak türünü alacak şekilde de yapılandırabilirsiniz.

Kota etkisi: Bu yönteme yapılan bir çağrının 100 birim kota maliyeti olur.

Yaygın kullanım alanları

İstek

HTTP isteği

GET https://www.googleapis.com/youtube/v3/search

Parametreler

Aşağıdaki tabloda, bu sorgunun desteklediği parametreler listelenmiştir. Listelenen parametrelerin tümü sorgu parametreleridir.

Parametreler
Gerekli parametreler
part string
part parametresi, API yanıtının içereceği bir veya daha fazla search kaynak özelliğinin virgülle ayrılmış listesini belirtir. Parametre değerini snippet olarak ayarlayın.
Filtreler (aşağıdaki parametrelerden 0 veya 1 tanesini belirtin)
forContentOwner boolean
Bu parametre yalnızca uygun şekilde yetkilendirilmiş bir istekte kullanılabilir ve yalnızca YouTube içerik iş ortaklarına yöneliktir.

forContentOwner parametresi, aramayı yalnızca onBehalfOfContentOwner parametresiyle tanımlanan içerik sahibine ait videoları alacak şekilde kısıtlar. forContentOwner doğru değerine ayarlanırsa isteğin şu gereksinimleri de karşılaması gerekir:
  • onBehalfOfContentOwner parametresi zorunludur.
  • İsteği yetkilendiren kullanıcı, belirtilen içerik sahibine bağlı bir hesap kullanıyor olmalıdır.
  • type parametre değeri video olarak ayarlanmalıdır.
  • Şu diğer parametrelerden hiçbiri ayarlanamaz: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Bu parametre yalnızca doğru şekilde yetkilendirilmiş bir istekte kullanılabilir. forDeveloper parametresi, aramayı yalnızca geliştiricinin uygulaması veya web sitesi aracılığıyla yüklenen videoları alacak şekilde kısıtlar. API sunucusu, geliştiriciyi tanımlamak için isteğin yetkilendirme kimlik bilgilerini kullanır. forDeveloper parametresi, q parametresi gibi isteğe bağlı arama parametreleriyle birlikte kullanılabilir.

Bu özellik için yüklenen her video, Google Developers Console'da geliştiricinin uygulamasıyla ilişkilendirilmiş proje numarasıyla otomatik olarak etiketlenir.

Daha sonra bir arama isteği forDeveloper parametresini true olarak ayarladığında API sunucusu, geliştiriciyi tanımlamak için isteğin yetkilendirme kimlik bilgilerini kullanır. Bu nedenle, bir geliştirici, sonuçları kendi uygulaması veya web sitesi üzerinden yüklenen videolarla kısıtlayabilir ancak diğer uygulamalar veya siteler aracılığıyla yüklenen videolarla sınırlamaz.
forMine boolean
Bu parametre yalnızca doğru şekilde yetkilendirilmiş bir istekte kullanılabilir. forMine parametresi, aramayı yalnızca kimliği doğrulanmış kullanıcıya ait videoları alacak şekilde kısıtlar. Bu parametreyi true olarak ayarlarsanız type parametresinin değeri de video olarak ayarlanmalıdır. Ayrıca, şu diğer parametrelerin hiçbiri aynı istekte ayarlanamaz: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
İsteğe bağlı parametreler
channelId string
channelId parametresi, API yanıtının yalnızca kanal tarafından oluşturulan kaynakları içermesi gerektiğini belirtir.

Not: İsteğiniz channelId parametresi için bir değer belirtip type parametre değerini video olarak ayarlıyorsa ancak forContentOwner, forDeveloper veya forMine filtrelerinden birini de ayarlamıyorsa arama sonuçları en fazla 500 videoyla sınırlandırılır.
channelType string
channelType parametresi, aramayı belirli bir kanal türüyle kısıtlamanızı sağlar.

Kabul edilebilir değerler şunlardır:
  • any: Tüm kanalları döndürür.
  • show – Yalnızca programları al.
eventType string
eventType parametresi, aramayı yayın etkinlikleriyle kısıtlar. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • completed – Yalnızca tamamlanan yayınları dahil eder.
  • live - Yalnızca etkin yayınları dahil edin.
  • upcoming - Yalnızca yaklaşan yayınları dahil eder.
location string
location parametresi, locationRadius parametresiyle birlikte dairesel bir coğrafi alan tanımlar ve aramayı meta verilerinde söz konusu alana denk gelen bir coğrafi konumu belirten videolarla kısıtlar. Parametre değeri, enlem/boylam koordinatlarını belirten bir dizedir (ör. (37.42307,-122.08427).

  • location parametre değeri, alanın merkezindeki noktayı tanımlar.
  • locationRadius parametresi, videonun arama sonuçlarına dahil edilmeye devam edebilmesi için videoyla ilişkilendirilen konumun o noktadan itibaren olabileceği maksimum mesafeyi belirtir.
İsteğiniz location parametresi için bir değer belirtiyor ancak locationRadius parametresi için de bir değer belirtmiyorsa API hata verir.

Not: Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.
locationRadius string
locationRadius parametresi, location parametresiyle birlikte dairesel bir coğrafi alan tanımlar.

Parametre değeri, kayan nokta sayısının ardından bir ölçüm birimi gelmelidir. Geçerli ölçü birimleri: m, km, ft ve mi. Örneğin, geçerli parametre değerleri 1500m, 5km, 10000ft ve 0.75mi şeklindedir. API, 1.000 kilometreden büyük locationRadius parametre değerlerini desteklemez.

Not: Daha fazla bilgi için location parametresinin tanımına bakın.
maxResults unsigned integer
maxResults parametresi, sonuç kümesinde döndürülmesi gereken maksimum öğe sayısını belirtir. Kabul edilebilir değerler 0 ile 50 arasındadır (bu değerler dahil). Varsayılan değer 5 değeridir.
onBehalfOfContentOwner string
Bu parametre yalnızca doğru şekilde yetkilendirilmiş bir istekte kullanılabilir. Not: Bu parametre yalnızca YouTube içerik iş ortaklarına yöneliktir.

onBehalfOfContentOwner parametresi, isteğin yetkilendirme kimlik bilgilerinin parametre değerinde belirtilen içerik sahibi adına hareket eden bir YouTube CMS kullanıcısını tanımladığını gösterir. Bu parametre, birçok farklı YouTube kanalına sahip olan ve bunları yöneten YouTube içerik iş ortakları için tasarlanmıştır. İçerik sahiplerinin, her kanal için kimlik doğrulama bilgileri sağlamak zorunda kalmadan bir kez kimlik doğrulaması yaparak tüm video ve kanal verilerine erişmelerine olanak tanır. Kullanıcının kimlik doğrulaması yaptığı CMS hesabı, belirtilen YouTube içerik sahibine bağlanmalıdır.
order string
order parametresi, API yanıtında kaynakları sıralamak için kullanılacak yöntemi belirtir. Varsayılan değer relevance değeridir.

Kabul edilebilir değerler şunlardır:
  • date: Kaynaklar, oluşturuldukları tarihe göre ters kronolojik düzende sıralanır.
  • rating: Kaynaklar en yüksek puandan en düşük puana doğru sıralanır.
  • relevance – Kaynaklar, arama sorgusuyla alaka düzeylerine göre sıralanır. Bu, bu parametre için varsayılan değerdir.
  • title: Kaynaklar başlığa göre alfabetik olarak sıralanır.
  • videoCount: Kanallar, yüklenen video sayısına göre büyükten küçüğe sıralanır.
  • viewCount: Kaynaklar, görüntüleme sayısı en yüksekten en düşük olana doğru sıralanır. Canlı yayınlarda videolar, yayınlar devam ederken eşzamanlı görüntüleyen sayısına göre sıralanır.
pageToken string
pageToken parametresi, sonuç kümesinde döndürülmesi gereken belirli bir sayfayı tanımlar. Bir API yanıtında nextPageToken ve prevPageToken özellikleri, alınabilecek diğer sayfaları tanımlar.
publishedAfter datetime
publishedAfter parametresi, API yanıtının yalnızca belirtilen zamanda veya daha sonra oluşturulmuş kaynakları içermesi gerektiğini belirtir. Değer, RFC 3339 biçimli bir tarih-saat değeridir (1970-01-01T00:00:00Z).
publishedBefore datetime
publishedBefore parametresi, API yanıtının yalnızca belirtilen zamandan önce veya belirtilen zamanda oluşturulmuş kaynakları içermesi gerektiğini belirtir. Değer, RFC 3339 biçimli bir tarih-saat değeridir (1970-01-01T00:00:00Z).
q string
q parametresi, aranacak sorgu terimini belirtir.

İsteğiniz, NOT (-) ve OR (|) Boole operatörlerini kullanarak videoları hariç tutabilir veya çeşitli arama terimlerinden biriyle ilişkilendirilmiş videoları bulabilir. Örneğin, "tekne gezisi" veya "yelken" ile eşleşen videoları aramak için q parametre değerini boating|sailing olarak ayarlayın. Benzer şekilde, "tekne gezileri" veya "yelkencilik" ile eşleşen ancak "balıkçılık" ile eşleşmeyen videoları aramak için q parametre değerini boating|sailing -fishing olarak ayarlayın. Dikey çizgi karakterinin, API isteğinizde gönderildiğinde URL çıkışlı olması gerektiğini unutmayın. Dikey çizgi karakteri için URL çıkışlı değer %7C şeklindedir.
regionCode string
regionCode parametresi, API'ye belirtilen ülkede görüntülenebilecek videolar için arama sonuçları döndürmesi talimatını verir. Parametre değeri bir ISO 3166-1 alfa-2 ülke kodudur.
relevanceLanguage string
relevanceLanguage parametresi, API'ye belirtilen dille en alakalı arama sonuçlarını döndürmesi talimatını verir. Parametre değeri genellikle bir ISO 639-1 iki harfli dil kodudur. Ancak, basitleştirilmiş Çince için zh-Hans ve geleneksel Çince için zh-Hant değerlerini kullanmanız gerekir. Diğer dillerdeki sonuçların, arama sorgusu terimiyle yüksek düzeyde alakalı olmaları halinde döndürüleceğini lütfen unutmayın.
safeSearch string
safeSearch parametresi, arama sonuçlarının standart içeriğin yanı sıra kısıtlanmış içerikleri de içermesi gerekip gerekmediğini ifade eder.

Kabul edilebilir değerler şunlardır:
  • moderate – YouTube, arama sonuçlarından bazı içerikleri filtreler ve en azından yerel ayarınızda kısıtlanmış içerikleri filtreler. İçeriklerine bağlı olarak, arama sonuçları arama sonuçlarından kaldırılabilir veya arama sonuçlarındaki sıralamaları düşürülebilir. Bu, varsayılan parametre değeridir.
  • none - YouTube, arama sonucu grubunu filtrelemez.
  • strict – YouTube, kısıtlanmış tüm içerikleri arama sonucu grubundan hariç tutmaya çalışır. İçeriklerine bağlı olarak, arama sonuçları arama sonuçlarından kaldırılabilir veya arama sonuçlarındaki sıralamaları düşürülebilir.
topicId string
topicId parametresi, API yanıtının yalnızca belirtilen konuyla ilişkilendirilmiş kaynakları içermesi gerektiğini belirtir. Bu değer, bir Freebase konu kimliğini tanımlar.

Önemli: Freebase ve Freebase API'nin kullanımdan kaldırılması nedeniyle, topicId parametresi 27 Şubat 2017 tarihinden itibaren farklı şekilde çalışmaya başlamıştır. Bu dönemde, YouTube seçilmiş az sayıda konu kimliğini desteklemeye başladı ve bu parametrenin değeri olarak yalnızca söz konusu küçük kimlik grubunu kullanabilirsiniz.

type string
type parametresi, arama sorgusunu yalnızca belirli bir kaynak türünü alacak şekilde kısıtlar. Değer, kaynak türlerinin virgülle ayrılmış bir listesidir. Varsayılan değer video,channel,playlist değeridir.

Kabul edilebilir değerler şunlardır:
  • channel
  • playlist
  • video
videoCaption string
videoCaption parametresi, API'nin video arama sonuçlarını altyazılarına göre filtreleyip filtrelemeyeceğini ifade eder. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any – Sonuçları, altyazı kullanılabilirliğine göre filtrelemeyin.
  • closedCaption: Yalnızca altyazılı videoları ekleyin.
  • none - Yalnızca altyazısı olmayan videoları ekleyin.
videoCategoryId string
videoCategoryId parametresi, video arama sonuçlarını kategorilerine göre filtreler. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.
videoDefinition string
videoDefinition parametresi, bir aramayı yalnızca yüksek çözünürlüklü (HD) veya standart tanımlı (SD) videoları içerecek şekilde kısıtlamanıza olanak tanır. HD videolar en az 720p çözünürlükte oynatılabilir ancak 1080p gibi daha yüksek çözünürlükler de kullanılabilir. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any: Çözünürlüğüne bakılmaksızın tüm videoları döndürür.
  • high - Yalnızca HD videoları alır.
  • standard - Yalnızca standart tanımlı videoları alın.
videoDimension string
videoDimension parametresi, bir aramayı yalnızca 2D veya 3D videoları alacak şekilde kısıtlamanıza olanak tanır. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • 2d – Arama sonuçlarını 3D videoları hariç tutacak şekilde kısıtlayabilirsiniz.
  • 3d – Arama sonuçlarını yalnızca 3D videoları içerecek şekilde sınırlandırın.
  • any - Döndürülen sonuçlara hem 3D hem de 3D olmayan videoları dahil et. Bu, varsayılan değerdir.
videoDuration string
videoDuration parametresi, video arama sonuçlarını sürelerine göre filtreler. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any – Video arama sonuçlarını sürelerine göre filtrelemeyin. Bu, varsayılan değerdir.
  • long - Yalnızca 20 dakikadan uzun videoları dahil edin.
  • medium - Yalnızca 4 ila 20 dakika uzunluğundaki (dahil) videoları ekleyin.
  • short - Yalnızca dört dakikadan kısa videoları dahil edin.
videoEmbeddable string
videoEmbeddable parametresi, aramayı yalnızca bir web sayfasına yerleştirilebilecek videolarla kısıtlamanızı sağlar. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any: Yerleştirilebilir olup olmadığına bakılmaksızın tüm videoları döndürür.
  • true – Yalnızca yerleştirilebilir videoları al.
videoLicense string
videoLicense parametresi, arama sonuçlarını yalnızca belirli bir lisansa sahip videoları içerecek şekilde filtreler. YouTube, video yükleyicilerin videolarından her birine Creative Commons lisansı veya standart YouTube lisansı eklemeyi seçmesine olanak tanır. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any: Sahip oldukları lisanslardan bağımsız olarak, sorgu parametreleriyle eşleşen tüm videoları döndürür.
  • creativeCommon: Yalnızca Creative Commons lisansı olan videoları döndür. Kullanıcılar, oluşturdukları diğer videolarda bu lisansa sahip videoları yeniden kullanabilir. Daha fazla bilgi
  • youtube: Yalnızca standart YouTube lisansına sahip videoları döndür.
videoPaidProductPlacement string
videoPaidProductPlacement parametresi, arama sonuçlarını yalnızca içerik üreticinin ücretli tanıtım olarak belirttiği videoları içerecek şekilde filtreler. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any: Ücretli tanıtım içerip içermediklerine bakılmaksızın tüm videoları döndürür.
  • true: Yalnızca ücretli tanıtım içeren videoları alın.
videoSyndicated string
videoSyndicated parametresi, aramayı yalnızca youtube.com dışında oynatılabilen videolarla kısıtlamanızı sağlar. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any: Ortak kullanıma sunulup sunulmadığına bakılmaksızın tüm videoları döndürür.
  • true – Yalnızca ortak kullanılan videoları al.
videoType string
videoType parametresi, aramayı belirli bir video türüyle kısıtlamanıza olanak tanır. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler şunlardır:
  • any – Tüm videoları döndürür.
  • episode – Yalnızca programların bölümlerini al.
  • movie – Yalnızca filmleri al.

İstek içeriği

Bu yöntemi çağırırken istek gövdesi sağlamayın.

Yanıt

Başarılı olursa bu yöntem aşağıdaki yapıya sahip bir yanıt gövdesi döndürür:

{
  "kind": "youtube#searchListResponse",
  "etag": etag,
  "nextPageToken": string,
  "prevPageToken": string,
  "regionCode": string,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    search Resource
  ]
}

Özellikler

Aşağıdaki tabloda bir arama sonucunda görünen özellikler tanımlanmaktadır:

Özellikler
kind string
API kaynağının türünü tanımlar. Değer youtube#searchListResponse olur.
etag etag
Bu kaynağın Etag'i.
nextPageToken string
Sonuç grubundaki bir sonraki sayfayı almak için pageToken parametresinin değeri olarak kullanılabilecek jeton.
prevPageToken string
Sonuç grubundaki önceki sayfayı almak için pageToken parametresinin değeri olarak kullanılabilecek jeton.
regionCode string
Arama sorgusu için kullanılan bölge kodu. Tesis değeri, bölgeyi tanımlayan iki harfli ISO ülke kodudur. i18nRegions.list yöntemi, desteklenen bölgelerin listesini döndürür. Varsayılan değer US değeridir. Desteklenmeyen bir bölge belirtilirse YouTube, sorguyu işlemek için varsayılan değer yerine başka bir bölgeyi seçebilir.
pageInfo object
pageInfo nesnesi, sonuç kümesiyle ilgili sayfalama bilgilerini içerir.
pageInfo.totalResults integer
Sonuç kümesindeki toplam sonuç sayısı.Değerin yaklaşık bir değer olduğunu ve tam bir değeri temsil edemeyebileceğini lütfen unutmayın. Ayrıca maksimum değer 1.000.000'dır.

Sayfalara ayırma bağlantıları oluşturmak için bu değeri kullanmamalısınız. Bunun yerine, sayfalara ayırma bağlantılarının gösterilip gösterilmeyeceğini belirlemek için nextPageToken ve prevPageToken özellik değerlerini kullanın.
pageInfo.resultsPerPage integer
API yanıtına dahil edilen sonuçların sayısı.
items[] list
Arama ölçütleriyle eşleşen sonuçların listesi.

Örnekler

Not: Aşağıdaki kod örnekleri, desteklenen tüm programlama dillerini temsil etmeyebilir. Desteklenen dillerin listesi için istemci kitaplıkları dokümanlarına bakın.

Apps Komut Dosyası

Bu işlev, 'köpekler' anahtar kelimesiyle ilgili videoları arar. Arama sonuçlarının video kimlikleri ve başlıkları, Apps Komut Dosyası'nın günlüğüne kaydedilir.

Bu örneğin sonuçları 25 ile sınırlandırdığını unutmayın. Daha fazla sonuç döndürmek için şu adreste açıklandığı şekilde ek parametreleri iletin: https://developers.google.com/youtube/v3/docs/search/list
function searchByKeyword() {
  var results = YouTube.Search.list('id,snippet', {q: 'dogs', maxResults: 25});

  for(var i in results.items) {
    var item = results.items[i];
    Logger.log('[%s] Title: %s', item.id.videoId, item.snippet.title);
  }
}

Go

Bu kod örneği, belirli bir anahtar kelimeyle ilişkili arama sonuçlarını almak için API'nin search.list yöntemini çağırır.

Bu örnekte Go istemci kitaplığı kullanılmaktadır.

package main

import (
	"flag"
	"fmt"
	"log"
	"net/http"

	"google.golang.org/api/googleapi/transport"
	"google.golang.org/api/youtube/v3"
)

var (
	query      = flag.String("query", "Google", "Search term")
	maxResults = flag.Int64("max-results", 25, "Max YouTube results")
)

const developerKey = "YOUR DEVELOPER KEY"

func main() {
	flag.Parse()

	client := &http.Client{
		Transport: &transport.APIKey{Key: developerKey},
	}

	service, err := youtube.New(client)
	if err != nil {
		log.Fatalf("Error creating new YouTube client: %v", err)
	}

	// Make the API call to YouTube.
	call := service.Search.List("id,snippet").
		Q(*query).
		MaxResults(*maxResults)
	response, err := call.Do()
	handleError(err, "")

	// Group video, channel, and playlist results in separate lists.
	videos := make(map[string]string)
	channels := make(map[string]string)
	playlists := make(map[string]string)

	// Iterate through each item and add it to the correct list.
	for _, item := range response.Items {
		switch item.Id.Kind {
		case "youtube#video":
			videos[item.Id.VideoId] = item.Snippet.Title
		case "youtube#channel":
			channels[item.Id.ChannelId] = item.Snippet.Title
		case "youtube#playlist":
			playlists[item.Id.PlaylistId] = item.Snippet.Title
		}
	}

	printIDs("Videos", videos)
	printIDs("Channels", channels)
	printIDs("Playlists", playlists)
}

// Print the ID and title of each result in a list as well as a name that
// identifies the list. For example, print the word section name "Videos"
// above a list of video search results, followed by the video ID and title
// of each matching video.
func printIDs(sectionName string, matches map[string]string) {
	fmt.Printf("%v:\n", sectionName)
	for id, title := range matches {
		fmt.Printf("[%v] %v\n", id, title)
	}
	fmt.Printf("\n\n")
}

.NET

Aşağıdaki kod örneği, belirli bir anahtar kelimeyle ilişkilendirilmiş arama sonuçlarını almak için API'nin search.list yöntemini çağırır.

Bu örnekte .NET istemci kitaplığı kullanılmaktadır.

using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Threading;
using System.Threading.Tasks;

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Upload;
using Google.Apis.Util.Store;
using Google.Apis.YouTube.v3;
using Google.Apis.YouTube.v3.Data;

namespace Google.Apis.YouTube.Samples
{
  /// <summary>
  /// YouTube Data API v3 sample: search by keyword.
  /// Relies on the Google APIs Client Library for .NET, v1.7.0 or higher.
  /// See https://developers.google.com/api-client-library/dotnet/get_started
  ///
  /// Set ApiKey to the API key value from the APIs & auth > Registered apps tab of
  ///   https://cloud.google.com/console
  /// Please ensure that you have enabled the YouTube Data API for your project.
  /// </summary>
  internal class Search
  {
    [STAThread]
    static void Main(string[] args)
    {
      Console.WriteLine("YouTube Data API: Search");
      Console.WriteLine("========================");

      try
      {
        new Search().Run().Wait();
      }
      catch (AggregateException ex)
      {
        foreach (var e in ex.InnerExceptions)
        {
          Console.WriteLine("Error: " + e.Message);
        }
      }

      Console.WriteLine("Press any key to continue...");
      Console.ReadKey();
    }

    private async Task Run()
    {
      var youtubeService = new YouTubeService(new BaseClientService.Initializer()
      {
        ApiKey = "REPLACE_ME",
        ApplicationName = this.GetType().ToString()
      });

      var searchListRequest = youtubeService.Search.List("snippet");
      searchListRequest.Q = "Google"; // Replace with your search term.
      searchListRequest.MaxResults = 50;

      // Call the search.list method to retrieve results matching the specified query term.
      var searchListResponse = await searchListRequest.ExecuteAsync();

      List<string> videos = new List<string>();
      List<string> channels = new List<string>();
      List<string> playlists = new List<string>();

      // Add each result to the appropriate list, and then display the lists of
      // matching videos, channels, and playlists.
      foreach (var searchResult in searchListResponse.Items)
      {
        switch (searchResult.Id.Kind)
        {
          case "youtube#video":
            videos.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.VideoId));
            break;

          case "youtube#channel":
            channels.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.ChannelId));
            break;

          case "youtube#playlist":
            playlists.Add(String.Format("{0} ({1})", searchResult.Snippet.Title, searchResult.Id.PlaylistId));
            break;
        }
      }

      Console.WriteLine(String.Format("Videos:\n{0}\n", string.Join("\n", videos)));
      Console.WriteLine(String.Format("Channels:\n{0}\n", string.Join("\n", channels)));
      Console.WriteLine(String.Format("Playlists:\n{0}\n", string.Join("\n", playlists)));
    }
  }
}

Ruby

Bu örnek, belirli bir anahtar kelimeyle ilişkilendirilmiş arama sonuçlarını almak için API'nin search.list yöntemini çağırır.

Bu örnekte Ruby istemci kitaplığı kullanılmaktadır.

#!/usr/bin/ruby

require 'rubygems'
gem 'google-api-client', '>0.7'
require 'google/api_client'
require 'trollop'

# Set DEVELOPER_KEY to the API key value from the APIs & auth > Credentials
# tab of
# {{ Google Cloud Console }} <{{ https://cloud.google.com/console }}>
# Please ensure that you have enabled the YouTube Data API for your project.
DEVELOPER_KEY = 'REPLACE_ME'
YOUTUBE_API_SERVICE_NAME = 'youtube'
YOUTUBE_API_VERSION = 'v3'

def get_service
  client = Google::APIClient.new(
    :key => DEVELOPER_KEY,
    :authorization => nil,
    :application_name => $PROGRAM_NAME,
    :application_version => '1.0.0'
  )
  youtube = client.discovered_api(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION)

  return client, youtube
end

def main
  opts = Trollop::options do
    opt :q, 'Search term', :type => String, :default => 'Google'
    opt :max_results, 'Max results', :type => :int, :default => 25
  end

  client, youtube = get_service

  begin
    # Call the search.list method to retrieve results matching the specified
    # query term.
    search_response = client.execute!(
      :api_method => youtube.search.list,
      :parameters => {
        :part => 'snippet',
        :q => opts[:q],
        :maxResults => opts[:max_results]
      }
    )

    videos = []
    channels = []
    playlists = []

    # Add each result to the appropriate list, and then display the lists of
    # matching videos, channels, and playlists.
    search_response.data.items.each do |search_result|
      case search_result.id.kind
        when 'youtube#video'
          videos << "#{search_result.snippet.title} (#{search_result.id.videoId})"
        when 'youtube#channel'
          channels << "#{search_result.snippet.title} (#{search_result.id.channelId})"
        when 'youtube#playlist'
          playlists << "#{search_result.snippet.title} (#{search_result.id.playlistId})"
      end
    end

    puts "Videos:\n", videos, "\n"
    puts "Channels:\n", channels, "\n"
    puts "Playlists:\n", playlists, "\n"
  rescue Google::APIClient::TransmissionError => e
    puts e.result.body
  end
end

main

Hatalar

Aşağıdaki tabloda, API'nin bu yönteme yapılan çağrıya yanıt olarak döndürebileceği hata mesajları tanımlanmaktadır. Daha fazla bilgi için lütfen hata mesajı dokümanlarına bakın.

Hata türü Hata ayrıntısı Açıklama
badRequest (400) invalidChannelId channelId parametresi geçersiz bir kanal kimliği belirtti.
badRequest (400) invalidLocation location ve/veya locationRadius parametre değeri yanlış biçimlendirilmiş.
badRequest (400) invalidRelevanceLanguage relevanceLanguage parametre değeri yanlış biçimlendirilmiş.
badRequest (400) invalidSearchFilter İstek, arama filtreleri ve/veya kısıtlamaların geçersiz bir kombinasyonunu içeriyor. forContentOwner veya forMine parametrelerini true olarak ayarladıysanız type parametresini video olarak ayarlamanız gerektiğini unutmayın. Ayrıca eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated veya videoType parametreleri için bir değer belirlediyseniz type parametresini video olarak ayarlamanız gerekir.

Deneyin.

Bu API'yi çağırmak ve API isteğini ve yanıtını görmek için APIs Explorer kullanın.