Search: list

Zwraca kolekcję wyników wyszukiwania, które pasują do parametrów zapytania określonych w żądaniu do interfejsu API. Domyślnie zestaw wyników wyszukiwania identyfikuje pasujące zasoby video, channel i playlist, ale możesz też skonfigurować zapytania tak, aby pobierały tylko określony typ zasobu.

Wpływ na limit: 100 wywołań dziennie. Wywołanie tej metody ma koszt limitu w wysokości 1 jednostki w zasobniku limitu zapytań.

Częste przypadki użycia

Żądanie

Żądanie HTTP

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

Parametry

W tabeli poniżej znajdziesz parametry obsługiwane przez to zapytanie. Wszystkie wymienione parametry to parametry zapytania.

Parametry
Parametry wymagane
part string
Parametr part określa rozdzieloną przecinkami listę co najmniej 1 właściwości zasobu search, które zostaną uwzględnione w odpowiedzi interfejsu API. Ustaw wartość parametru na snippet.
Filtry(określ 0 lub 1 z tych parametrów)
forContentOwner boolean
Tego parametru można używać tylko w prawidłowo autoryzowanym żądaniu i jest on przeznaczony wyłącznie dla partnerów treści YouTube.

Parametr forContentOwner ogranicza wyszukiwanie tylko do filmów należących do właściciela treści określonego przez parametr onBehalfOfContentOwner. Jeśli parametr forContentOwner ma wartość „true”, żądanie musi też spełniać te wymagania:
  • Parametr onBehalfOfContentOwner jest wymagany.
  • Użytkownik autoryzujący żądanie musi korzystać z konta połączonego z określonym właścicielem treści.
  • Wartość parametru type musi być ustawiona na video.
  • Nie można ustawić żadnego z tych parametrów: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Tego parametru można używać tylko w prawidłowo autoryzowanym żądaniu. Parametr forDeveloper ogranicza wyszukiwanie do filmów przesłanych za pomocą aplikacji lub witryny dewelopera. Serwer interfejsu API używa danych logowania autoryzacji żądania do identyfikacji dewelopera. Parametr forDeveloper może być używany w połączeniu z opcjonalnymi parametrami wyszukiwania, takimi jak parametr q.

W przypadku tej funkcji każdy przesłany film jest automatycznie oznaczany numerem projektu powiązanym z aplikacją dewelopera w Google Developers Console.

Gdy w żądaniu wyszukiwania parametr forDeveloper zostanie ustawiony na true, serwer interfejsu API użyje danych logowania żądania, aby zidentyfikować dewelopera. Dlatego deweloper może ograniczyć wyniki do filmów przesłanych za pomocą jego aplikacji lub witryny, ale nie do filmów przesłanych za pomocą innych aplikacji lub witryn.
forMine boolean
Tego parametru można używać tylko w odpowiednio autoryzowanym żądaniu. Parametr forMine ogranicza wyszukiwanie tylko do filmów należących do uwierzytelnionego użytkownika. Jeśli ustawisz ten parametr na true, wartość parametru type musi być również ustawiona na video. W tym samym żądaniu nie można też ustawić żadnego z tych parametrów: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
Parametry opcjonalne
channelId string
Parametr channelId wskazuje, że odpowiedź interfejsu API powinna zawierać tylko zasoby utworzone przez kanał.

Uwaga: wyniki wyszukiwania są ograniczone do maksymalnie 500 filmów, jeśli żądanie określa wartość parametru channelId i ustawia wartość parametru type na video, ale nie ustawia jednego z filtrów forContentOwner, forDeveloper lub forMine.
channelType string
Parametr channelType pozwala ograniczyć wyszukiwanie do określonego typu kanału.

Dopuszczalne wartości:
  • any – przywróć wszystkie kanały.
  • show – pobieraj tylko seriale i programy.
eventType string
Parametr eventType ogranicza wyszukiwanie do wydarzeń transmitowanych. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • completed – uwzględnia tylko zakończone transmisje.
  • live – uwzględnia tylko aktywne transmisje.
  • upcoming – uwzględnia tylko nadchodzące transmisje.
location string
Parametr location w połączeniu z parametrem locationRadius definiuje okrągły obszar geograficzny i ogranicza wyszukiwanie do filmów, które w metadanych mają określone położenie geograficzne znajdujące się w tym obszarze. Wartość parametru to ciąg znaków określający współrzędne geograficzne, np. (37.42307,-122.08427).

  • Wartość parametru location określa punkt w centrum obszaru.
  • Parametr locationRadius określa maksymalną odległość, w jakiej lokalizacja powiązana z filmem może znajdować się od tego punktu, aby film nadal był uwzględniany w wynikach wyszukiwania.
Interfejs API zwraca błąd, jeśli żądanie określa wartość parametru location, ale nie określa wartości parametru locationRadius.

Uwaga: jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.
locationRadius string
Parametr locationRadius w połączeniu z parametrem location definiuje okrągły obszar geograficzny.

Wartość parametru musi być liczbą zmiennoprzecinkową, po której następuje jednostka miary. Prawidłowe jednostki miary to m, km, ft i mi. Prawidłowe wartości parametru to np. 1500m, 5km, 10000ft i 0.75mi. Interfejs API nie obsługuje wartości parametru locationRadius większych niż 1000 kilometrów.

Uwaga: więcej informacji znajdziesz w definicji parametru location.
maxResults unsigned integer
Parametr maxResults określa maksymalną liczbę elementów, które powinny zostać zwrócone w zbiorze wyników. Akceptowane wartości to 0–50 (włącznie). Wartością domyślną jest 5.

onBehalfOfContentOwner string
Tego parametru można używać tylko w prawidłowo autoryzowanym żądaniu. Uwaga: ten parametr jest przeznaczony wyłącznie dla partnerów treści YouTube.

Parametr onBehalfOfContentOwner wskazuje, że dane uwierzytelniające żądania identyfikują użytkownika systemu YouTube CMS, który działa w imieniu właściciela treści określonego w wartości parametru. Ten parametr jest przeznaczony dla partnerów YouTube, którzy są właścicielami wielu różnych kanałów YouTube i nimi zarządzają. Umożliwia właścicielom treści jednorazowe uwierzytelnianie i uzyskiwanie dostępu do wszystkich danych dotyczących filmów i kanałów bez konieczności podawania danych uwierzytelniających dla każdego kanału z osobna. Konto CMS, za pomocą którego użytkownik się uwierzytelnia, musi być połączone z określonym właścicielem treści w YouTube.
order string
Parametr order określa metodę, która zostanie użyta do uporządkowania zasobów w odpowiedzi interfejsu API. Wartością domyślną jest relevance.

Akceptowane wartości:
  • date – zasoby są sortowane w odwrotnej kolejności chronologicznej na podstawie daty ich utworzenia. Uwaga: ponieważ ta funkcja korzysta z indeksu wyszukiwania, w przypadku nowych treści mogą wystąpić opóźnienia w indeksowaniu lub możesz otrzymać niepełne zestawy wyników. Aby niezawodnie pobierać ostatnio przesłane filmy z kanału, nie używaj search.list. Zamiast tego użyj metody playlistItems.list, aby pobrać playlistę z przesłanymi filmami z kanału.
  • rating – zasoby są sortowane od najwyższej do najniższej oceny. Uwaga: ta ocena jest obliczana na podstawie wewnętrznego wyniku algorytmicznego i nie jest ściśle równoważna malejącej liczbie polubień.
  • relevance – zasoby są sortowane na podstawie ich trafności względem zapytania. Jest to wartość domyślna tego parametru.
  • title – zasoby są sortowane alfabetycznie według tytułu.
  • videoCount – kanały są sortowane malejąco według liczby przesłanych filmów.
  • viewCount – zasoby są sortowane od największej do najmniejszej liczby wyświetleń. W przypadku transmisji na żywo filmy są sortowane według liczby widzów równocześnie oglądających transmisję w czasie jej trwania.
pageToken string
Parametr pageToken identyfikuje konkretną stronę w zestawie wyników, która ma zostać zwrócona. W odpowiedzi interfejsu API właściwości nextPageToken i prevPageToken identyfikują inne strony, które można pobrać.
publishedAfter datetime
Parametr publishedAfter wskazuje, że odpowiedź interfejsu API powinna zawierać tylko zasoby utworzone w określonym czasie lub później. Wartość jest datą i godziną w formacie RFC 3339 (1970-01-01T00:00:00Z).
publishedBefore datetime
Parametr publishedBefore wskazuje, że odpowiedź interfejsu API powinna zawierać tylko zasoby utworzone przed określonym czasem lub w tym czasie. Wartość jest datą i godziną w formacie RFC 3339 (1970-01-01T00:00:00Z).
q string
Parametr q określa wyszukiwane hasło.

W żądaniu możesz też użyć operatorów logicznych NOT (-) i OR (|), aby wykluczyć filmy lub znaleźć filmy powiązane z jednym z kilku haseł. Aby na przykład wyszukać filmy pasujące do hasła „boating” lub „sailing”, ustaw wartość parametru q na boating|sailing. Podobnie, aby wyszukać filmy pasujące do słów „boating” lub „sailing”, ale nie do słowa „fishing”, ustaw wartość parametru q na boating|sailing -fishing. Pamiętaj, że znak kreski pionowej musi być zakodowany w adresie URL, gdy jest wysyłany w żądaniu do interfejsu API. Wartość znaku potoku po zastosowaniu kodowania URL to %7C.
regionCode string
Parametr regionCode instruuje interfejs API, aby zwracał wyniki wyszukiwania filmów, które można wyświetlać w określonym kraju. Wartość parametru to kod kraju w formacie ISO 3166-1 alfa-2.
relevanceLanguage string
Parametr relevanceLanguage instruuje interfejs API, aby zwracał wyniki wyszukiwania, które są najbardziej trafne dla określonego języka. Wartość parametru to zwykle dwuliterowy kod języka ISO 639-1. W przypadku uproszczonego języka chińskiego należy użyć wartości zh-Hans, a w przypadku tradycyjnego języka chińskiego – zh-Hant. Pamiętaj, że wyniki w innych językach będą nadal wyświetlane, jeśli będą bardzo trafne w odniesieniu do wyszukiwanego hasła.
safeSearch string
Parametr safeSearch określa, czy wyniki wyszukiwania mają obejmować treści podlegające ograniczeniom, a także treści standardowe.

Dopuszczalne wartości to:
  • moderate – YouTube odfiltruje niektóre treści z wyników wyszukiwania, a przynajmniej te, które są objęte ograniczeniami w Twojej lokalizacji. W zależności od treści wyniki wyszukiwania mogą zostać usunięte lub obniżone w rankingu. Jest to domyślna wartość parametru.
  • none – YouTube nie będzie filtrować wyników wyszukiwania.
  • strict – YouTube spróbuje wykluczyć z wyników wyszukiwania wszystkie treści podlegające ograniczeniom. W zależności od treści wyniki wyszukiwania mogą zostać usunięte lub obniżone w rankingu.
topicId string
Parametr topicId wskazuje, że odpowiedź interfejsu API powinna zawierać tylko zasoby powiązane z określonym tematem. Wartość identyfikuje identyfikator tematu Freebase.

Ważne: ze względu na wycofanie Freebase i interfejsu Freebase API od 27 lutego 2017 r. parametr topicId działa inaczej. W tym czasie YouTube zaczął obsługiwać niewielki zestaw wyselekcjonowanych identyfikatorów tematów, a jako wartości tego parametru można używać tylko tego mniejszego zestawu identyfikatorów.

type string
Parametr type ogranicza zapytanie, aby pobierało tylko określony typ zasobu. Wartość to lista typów zasobów rozdzielonych przecinkami. Wartością domyślną jest video,channel,playlist.

Akceptowane wartości:
  • channel
  • playlist
  • video
videoCaption string
Parametr videoCaption wskazuje, czy interfejs API powinien filtrować wyniki wyszukiwania filmów na podstawie tego, czy mają napisy. Jeśli podasz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – nie filtruj wyników na podstawie dostępności napisów.
  • closedCaption – uwzględniaj tylko filmy z napisami.
  • none – uwzględnia tylko filmy, które nie mają napisów.
videoCategoryId string
Parametr videoCategoryId filtruje wyniki wyszukiwania filmów na podstawie ich kategorii. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.
videoDefinition string
Parametr videoDefinition umożliwia ograniczenie wyszukiwania tylko do filmów w wysokiej rozdzielczości (HD) lub standardowej rozdzielczości (SD). Filmy HD można odtwarzać w rozdzielczości co najmniej 720p, ale mogą być też dostępne wyższe rozdzielczości, np. 1080p. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – zwraca wszystkie filmy, niezależnie od ich rozdzielczości.
  • high – pobieraj tylko wideo HD.
  • standard – pobierane są tylko filmy w standardowej rozdzielczości.
videoDimension string
Parametr videoDimension pozwala ograniczyć wyszukiwanie tylko do filmów 2D lub 3D. Jeśli podasz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • 2d – ogranicza wyniki wyszukiwania, wykluczając filmy 3D.
  • 3d – ogranicza wyniki wyszukiwania tylko do filmów 3D.
  • any – uwzględnia w wynikach zarówno filmy 3D, jak i inne. Jest to wartość domyślna.
videoDuration string
Parametr videoDuration filtruje wyniki wyszukiwania filmów na podstawie ich czasu trwania. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – nie filtruj wyników wyszukiwania filmów na podstawie ich długości. Jest to wartość domyślna.
  • long – uwzględniaj tylko filmy dłuższe niż 20 minut;
  • medium – uwzględniaj tylko filmy o długości od 4 do 20 minut (włącznie).
  • short – uwzględniaj tylko filmy, które trwają krócej niż 4 minuty.
videoEmbeddable string
Parametr videoEmbeddable pozwala ograniczyć wyszukiwanie tylko do filmów, które można umieścić na stronie internetowej. Jeśli podasz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – zwraca wszystkie filmy, niezależnie od tego, czy można je umieścić na stronie.
  • true – pobieraj tylko filmy, które można umieścić na stronie.
videoLicense string
Parametr videoLicense filtruje wyniki wyszukiwania, aby zawierały tylko filmy z określoną licencją. YouTube umożliwia przesyłającym filmy wybór licencji Creative Commons lub standardowej licencji YouTube dla każdego z ich filmów. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – zwraca wszystkie filmy, niezależnie od tego, jaką mają licencję, które pasują do parametrów zapytania.
  • creativeCommon – zwracane są tylko filmy objęte licencją Creative Commons. Użytkownicy mogą ponownie wykorzystywać filmy z tą licencją w innych tworzonych przez siebie filmach. Więcej informacji
  • youtube – zwraca tylko filmy, które mają standardową licencję YouTube.
videoPaidProductPlacement string
Parametr videoPaidProductPlacement filtruje wyniki wyszukiwania, aby uwzględniać tylko filmy, w przypadku których twórca zadeklarował płatną promocję. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – zwraca wszystkie filmy, niezależnie od tego, czy zawierają płatne promocje.
  • true – pobieraj tylko filmy z płatnymi promocjami.
videoSyndicated string
Parametr videoSyndicated pozwala ograniczyć wyszukiwanie tylko do filmów, które można odtwarzać poza youtube.com. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości to:
  • any – zwraca wszystkie filmy, zarówno te, które są objęte syndykacją, jak i te, które nie są.
  • true – pobierane są tylko filmy dystrybuowane.
videoType string
Parametr videoType pozwala ograniczyć wyszukiwanie do określonego typu filmów. Jeśli określisz wartość tego parametru, musisz też ustawić wartość parametru type na video.

Dopuszczalne wartości:
  • any – zwraca wszystkie filmy.
  • episode – pobieraj tylko odcinki programów.
  • movie – pobieranie tylko filmów.

Treść żądania

Podczas wywoływania tej metody nie podawaj treści żądania.

Odpowiedź

Jeśli operacja się powiedzie, ta metoda zwróci treść odpowiedzi o tej strukturze:

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

Właściwości

W tabeli poniżej opisujemy właściwości, które pojawiają się w wyniku wyszukiwania:

Właściwości
kind string
Określa typ zasobu interfejsu API. Wartość będzie wynosić youtube#searchListResponse.
etag etag
Etag tego zasobu.
nextPageToken string
Token, którego można użyć jako wartości parametru pageToken, aby pobrać następną stronę w zestawie wyników.
prevPageToken string
Token, którego można użyć jako wartości parametru pageToken, aby pobrać poprzednią stronę w zbiorze wyników.
regionCode string
Kod regionu użyty w zapytaniu. Wartość właściwości to dwuliterowy kod kraju w standardzie ISO, który identyfikuje region. Metoda i18nRegions.list zwraca listę obsługiwanych regionów. Wartością domyślną jest US. Jeśli podasz nieobsługiwany region, YouTube może wybrać inny region zamiast wartości domyślnej, aby obsłużyć zapytanie.
pageInfo object
Obiekt pageInfo zawiera informacje o stronicowaniu zbioru wyników.
pageInfo.totalResults integer
Łączna liczba wyników w zbiorze wyników.Pamiętaj, że ta wartość jest przybliżona i może nie być dokładna. Maksymalna wartość to 1 000 000.

Nie używaj tej wartości do tworzenia linków do podziału na strony. Zamiast tego użyj wartości właściwości nextPageToken i prevPageToken, aby określić, czy wyświetlać linki do stron.
pageInfo.resultsPerPage integer
Liczba wyników uwzględnionych w odpowiedzi interfejsu API.
items[] list
Lista wyników pasujących do kryteriów wyszukiwania.

Przykłady

Uwaga: poniższe przykłady kodu mogą nie odzwierciedlać wszystkich obsługiwanych języków programowania. Listę obsługiwanych języków znajdziesz w dokumentacji bibliotek klienta.

Google Apps Script

Ta funkcja wyszukuje filmy powiązane ze słowem kluczowym „psy”. Identyfikatory i tytuły filmów z wyników wyszukiwania są rejestrowane w dzienniku Apps Script.

Pamiętaj, że ten przykład ogranicza wyniki do 25. Aby uzyskać więcej wyników, przekaż dodatkowe parametry zgodnie z dokumentacją: 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

Ten przykładowy kod wywołuje metodę search.list interfejsu API, aby pobrać wyniki wyszukiwania powiązane z określonym słowem kluczowym.

W tym przykładzie używana jest biblioteka klienta Go.

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

Poniższy przykładowy kod wywołuje metodę search.list interfejsu API, aby pobrać wyniki wyszukiwania powiązane z określonym słowem kluczowym.

W tym przykładzie używamy biblioteki klienta.NET.

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

Ten przykład wywołuje metodę search.list interfejsu API, aby pobrać wyniki wyszukiwania powiązane z określonym słowem kluczowym.

W tym przykładzie używamy biblioteki klienta Ruby.

#!/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

Błędy

W tabeli poniżej znajdziesz komunikaty o błędach, które interfejs API może zwrócić w odpowiedzi na wywołanie tej metody. Więcej informacji znajdziesz w dokumentacji dotyczącej komunikatów o błędach.

Typ błędu Szczegóły błędu Opis
badRequest (400) invalidChannelId Parametr channelId określa nieprawidłowy identyfikator kanału.
badRequest (400) invalidLocation Wartość parametru location lub locationRadius jest nieprawidłowo sformatowana.
badRequest (400) invalidRelevanceLanguage Wartość parametru relevanceLanguage jest nieprawidłowo sformatowana.
badRequest (400) invalidSearchFilter Żądanie zawiera nieprawidłową kombinację filtrów wyszukiwania lub ograniczeń. Pamiętaj, że jeśli ustawisz parametr forContentOwner lub forMine na true, musisz ustawić parametr type na video. Jeśli ustawisz wartość parametrów eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated lub videoType, musisz też ustawić parametr type na wartość video.

Wypróbuj

Użyj APIs Explorer, aby wywołać ten interfejs API i wyświetlić żądanie do interfejsu API oraz odpowiedź.