Search: list

API isteğinde belirtilen sorgu parametreleriyle eşleşen bir arama sonuçları koleksiyonu 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: Günde 100 çağrı. Bu yönteme yapılan bir çağrının, Arama Sorguları kota grubunda 1 birimlik kota maliyeti vardır.

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 tüm parametreler 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ş isteklerde kullanılabilir ve yalnızca YouTube içerik iş ortakları için tasarlanmıştır.

forContentOwner parametresi, aramayı yalnızca onBehalfOfContentOwner parametresiyle tanımlanan içerik sahibine ait videoları alacak şekilde kısıtlar. forContentOwner, "true" olarak ayarlanırsa isteğin aşağıdaki koşulları da karşılaması gerekir:
  • onBehalfOfContentOwner parametresi zorunludur.
  • İsteği yetkilendiren kullanıcı, belirtilen içerik sahibine bağlı bir hesap kullanmalı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'daki geliştiricinin uygulamasıyla ilişkili 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ı yalnızca kendi uygulaması veya web sitesi üzerinden yüklenen videolarla kısıtlayabilir ancak diğer uygulamalar veya siteler üzerinden yüklenen videolarla kısıtlayamaz.
forMine boolean
Bu parametre yalnızca doğru şekilde yetkilendirilmiş bir istekte kullanılabilir. forMine parametresi, aramanın yalnızca kimliği doğrulanmış kullanıcının sahip olduğu videoları alacak şekilde kısıtlanmasını sağlar. Bu parametreyi true olarak ayarlarsanız type parametresinin değeri de video olarak ayarlanmalıdır. Ayrıca, aynı istekte şu diğer parametrelerden hiçbiri 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 belirtiyor ve type parametre değerini video olarak ayarlıyorsa ancak forContentOwner, forDeveloper veya forMine filtrelerinden birini ayarlamıyorsa arama sonuçları en fazla 500 videoyla sınırlanır.
channelType string
channelType parametresi, aramayı belirli bir kanal türüyle kısıtlamanıza olanak tanır.

Kabul edilebilir değerler şunlardır:
  • any: Tüm kanalları döndürür.
  • show: Yalnızca programları getirir.
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:
  • completed: Yalnızca tamamlanan yayınları dahil eder.
  • live – Yalnızca etkin yayınları dahil edin.
  • upcoming: Yalnızca yaklaşan yayınları dahil et.
location string
location parametresi, locationRadius parametresiyle birlikte dairesel bir coğrafi alan tanımlar ve aramayı, meta verilerinde bu alan içinde kalan bir coğrafi konum 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, bir videonun arama sonuçlarına dahil edilmeye devam etmesi için videoyla ilişkili konumun bu noktadan olabileceği maksimum mesafeyi belirtir.
İsteğiniz location parametresi için bir değer belirtiyor ancak locationRadius parametresi için bir değer belirtmiyorsa API bir hata döndürür.

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 noktalı bir sayı ve ardından bir ölçü birimi olmalıdır. Geçerli ölçü birimleri: m, km, ft ve mi. Örneğin, geçerli parametre değerleri arasında 1500m, 5km, 10000ft ve 0.75mi bulunur. 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 edilen değerler 0 ile 50 arasındadır (bu değerler dahil). Varsayılan değer: 5.

onBehalfOfContentOwner string
Bu parametre yalnızca doğru şekilde yetkilendirilmiş bir istekte kullanılabilir. Not: Bu parametre yalnızca YouTube içerik iş ortakları için tasarlanmıştır.

onBehalfOfContentOwner parametresi, isteğin yetkilendirme kimlik bilgilerinin, parametre değerinde belirtilen içerik sahibi adına işlem yapan bir YouTube İYS kullanıcısını tanımladığını gösterir. Bu parametre, birçok farklı YouTube kanalının sahibi olan ve bunları yöneten YouTube içerik iş ortakları için tasarlanmıştır. İçerik sahipleri, bu özellik sayesinde bir kez kimlik doğrulama yaparak tüm video ve kanal verilerine erişebilir. Her kanal için ayrı ayrı kimlik doğrulama bilgileri sağlamaları gerekmez. Kullanıcının kimlik doğrulaması için kullandığı CMS hesabı, belirtilen YouTube içerik sahibine bağlı olmalıdır.
order string
order parametresi, API yanıtındaki kaynakları sıralamak için kullanılacak yöntemi belirtir. Varsayılan değer relevance şeklindedir.

Kabul edilen değerler şunlardır:
  • date: Kaynaklar, oluşturulma tarihlerine göre ters kronolojik sırayla sıralanır. Not: Bu özellik arama dizinini kullandığından yeni içeriklerin dizine eklenmesinde gecikmeler yaşayabilir veya eksik sonuç kümeleri alabilirsiniz. Bir kanalın en son yüklenen videolarını güvenilir bir şekilde almak için search.list kullanmayın. Bunun yerine, kanalın yüklemeler oynatma listesini almak için playlistItems.list yöntemini kullanın.
  • rating: Kaynaklar en yüksek puandan en düşük puana doğru sıralanır. Not: Bu puan, dahili bir algoritmik puan kullanılarak hesaplanır ve kesinlikle azalan beğeni sayısına eşdeğer değildir.
  • relevance: Kaynaklar, arama sorgusuyla alaka düzeylerine göre sıralanır. Bu, parametrenin varsayılan değeridir.
  • title: Kaynaklar, başlığa göre alfabetik olarak sıralanır.
  • videoCount: Kanallar, yüklenen video sayısına göre azalan düzende sıralanır.
  • viewCount: Kaynaklar, en yüksek görüntüleme sayısından en düşük görüntüleme sayısına doğru sıralanır. Canlı yayınlarda videolar, yayın devam ederken eşzamanlı izleyici 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şturulan 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şturulan kaynakları içermesi gerektiğini gösterir. 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ğinizde, videoları hariç tutmak veya birkaç arama teriminden biriyle ilişkili videoları bulmak için Boole NOT (-) ve OR (|) operatörleri de kullanılabilir. Ö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, "balık tutma" değil de "tekneyle gezme" veya "yelkenle gezme" ile eşleşen videoları aramak için q parametre değerini boating|sailing -fishing olarak ayarlayın. API isteğinizde gönderilirken boru karakterinin URL'de kod dışına alınması gerektiğini unutmayın. Dikey çizgi karakterinin URL çıkışlı değeri %7C şeklindedir.
regionCode string
regionCode parametresi, API'ye belirtilen ülkede görüntülenebilen videolar için arama sonuçları döndürmesini söyler. Parametre değeri, ISO 3166-1 alfa-2 ülke kodudur.
relevanceLanguage string
relevanceLanguage parametresi, API'ye belirtilen dille en alakalı arama sonuçlarını döndürmesini bildirir. Parametre değeri genellikle ISO 639-1 iki harfli dil kodudur. Ancak Basitleştirilmiş Çince için zh-Hans, Geleneksel Çince için zh-Hant değerlerini kullanmanız gerekir. Arama sorgusu terimiyle son derece alakalı olmaları durumunda diğer dillerdeki sonuçların döndürülmeye devam edeceğ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çerik de barındırıp barındırmayacağını belirtir.

Kabul edilebilir değerler şunlardır:
  • moderate – YouTube, arama sonuçlarındaki bazı içerikleri filtreler ve en azından bulunduğunuz bölgede kısıtlanmış içerikleri filtreler. İçeriklerine bağlı olarak arama sonuçları, arama sonuçlarından kaldırılabilir veya arama sonuçlarında alt sıralara taşınabilir. 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. Arama sonuçları, içeriklerine bağlı olarak arama sonuçlarından kaldırılabilir veya arama sonuçlarındaki sıralaması düşürülebilir.
topicId string
topicId parametresi, API yanıtının yalnızca belirtilen konuyla ilişkili kaynakları içermesi gerektiğini belirtir. Değer, bir Freebase konu kimliğini tanımlar.

Önemli: Freebase ve Freebase API'nin desteği sonlandırıldığından topicId parametresi 27 Şubat 2017'den itibaren farklı şekilde çalışmaya başladı. O dönemde YouTube, seçilmiş küçük bir konu kimliği grubunu desteklemeye başladı ve bu parametrenin değerleri olarak yalnızca bu küçük kimlik grubunu kullanabilirsiniz.

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

Kabul edilen değerler:
  • channel
  • playlist
  • video
videoCaption string
videoCaption parametresi, API'nin video arama sonuçlarını altyazılı olup olmadıklarına göre filtreleyip filtrelemeyeceğini belirtir. Bu parametre için bir değer belirtirseniz type parametresinin değerini de video olarak ayarlamanız gerekir.

Kabul edilebilir değerler:
  • any: Sonuçları altyazı kullanılabilirliğine göre filtrelemeyin.
  • closedCaption: Yalnızca altyazılı videoları dahil edin.
  • none – Yalnızca altyazı içermeyen videoları dahil edin.
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 aramanın yalnızca yüksek çözünürlüklü (HD) veya standart çözünürlüklü (SD) videoları içerecek şekilde kısıtlanmasına 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üklerine bakılmaksızın tüm videoları döndürür.
  • high: Yalnızca HD videoları alır.
  • standard: Yalnızca standart çözünürlükteki videoları alır.
videoDimension string
videoDimension parametresi, 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ıtlayın.
  • 3d: Arama sonuçlarını yalnızca 3D videoları içerecek şekilde kısıtlar.
  • any: Döndürülen sonuçlara hem 3D hem de 3D olmayan videoları dahil edin. 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:
  • 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 (4 ve 20 dakika dahil) videoları ekleyin.
  • short: Yalnızca dört dakikadan kısa videolar ekleyin.
videoEmbeddable string
videoEmbeddable parametresi, aramayı yalnızca web sayfalarına yerleştirilebilen videolarla 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: Yerleştirilebilir olsun veya olmasın tüm videoları döndürür.
  • true: Yalnızca yerleştirilebilir videoları alın.
videoLicense string
videoLicense parametresi, arama sonuçlarını yalnızca belirli bir lisansa sahip videoları içerecek şekilde filtreler. YouTube, video yükleyenlerin her bir videosuna Creative Commons lisansı veya standart YouTube lisansı eklemesine 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ı lisanstan bağımsız olarak, sorgu parametreleriyle eşleşen tüm videoları döndürür.
  • creativeCommon: Yalnızca Creative Commons lisansına sahip videoları döndürür. Kullanıcılar, bu lisansa sahip videoları oluşturdukları diğer videolarda yeniden kullanabilir. Daha fazla bilgi edinin.
  • youtube: Yalnızca standart YouTube lisansına sahip videoları döndürür.
videoPaidProductPlacement string
videoPaidProductPlacement parametresi, arama sonuçlarını yalnızca içerik üreticinin ücretli tanıtım içerdiğini 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çermediğine bakılmaksızın tüm videoları döndürür.
  • true: Yalnızca ücretli tanıtım içeren videoları getirir.
videoSyndicated string
videoSyndicated parametresi, aramayı yalnızca youtube.com dışında oynatılabilen videolarla 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: Sendikasyonlu olsun veya olmasın tüm videoları döndürür.
  • true: Yalnızca sendikasyon videolarını getirir.
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ır.
  • movie: Yalnızca filmleri alır.

İstek metni

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, 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ç kümesindeki sonraki sayfayı almak için pageToken parametresinin değeri olarak kullanılabilecek jeton.
prevPageToken string
Sonuç kümesinde önceki sayfayı almak için pageToken parametresinin değeri olarak kullanılabilen jeton.
regionCode string
Arama sorgusu için kullanılan bölge kodu. Özellik değeri, bölgeyi tanımlayan iki harfli bir ISO ülke kodudur. i18nRegions.list yöntemi, desteklenen bölgelerin listesini döndürür. Varsayılan değer US'dır. Desteklenmeyen bir bölge belirtilirse YouTube, sorguyu işlemek için varsayılan değer yerine başka bir bölge seçebilir.
pageInfo object
pageInfo nesnesi, sonuç kümesi için sayfalama bilgilerini kapsar.
pageInfo.totalResults integer
Sonuç kümesindeki toplam sonuç sayısı.Değerin yaklaşık olduğunu ve tam bir değeri temsil etmeyebileceğini lütfen unutmayın. Ayrıca, maksimum değer 1.000.000'dur.

Bu değeri, sayfalara ayırma bağlantıları oluşturmak için 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 kapsamayabilir. Desteklenen dillerin listesi için istemci kitaplıkları belgelerine 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 örnekte sonuçların 25 ile sınırlandırıldığını unutmayın. Daha fazla sonuç döndürmek için ek parametreleri şu belgede açıklandığı şekilde iletin: https://developers.google.com/youtube/data/reference/rest/v3/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ğinde, belirli bir anahtar kelimeyle ilişkili arama sonuçlarını almak için API'nin search.list yöntemi çağrılıyor.

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şkili 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 bir çağrıya yanıt olarak döndürebileceği hata mesajları belirtilmektedir. Daha fazla bilgi için lütfen hata mesajı belgelerine 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, geçersiz bir arama filtresi ve/veya kısıtlama kombinasyonu içeriyor. forContentOwner veya forMine parametrelerini true olarak ayarlarsanız type parametresini video olarak ayarlamanız gerektiğini unutmayın. eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated veya videoType parametreleri için bir değer ayarlarsanız type parametresini de video olarak ayarlamanız gerekir.

Deneyin.

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