Search: list

Gibt eine Sammlung von Suchergebnissen zurück, die den Suchparametern entsprechen, die in der API-Anfrage angegeben sind. Standardmäßig werden in den Suchergebnissen übereinstimmende video-, channel- und playlist-Ressourcen erkannt. Sie können Suchanfragen aber auch so konfigurieren, dass nur ein bestimmter Ressourcentyp abgerufen wird.

Auswirkungen auf das Kontingent:Bei einem Aufruf dieser Methode liegen die Kontingentkosten bei 100 Einheiten.

Gängige Anwendungsfälle

Anfragen

HTTP-Anfrage

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

Parameter

In der folgenden Tabelle sind die Parameter aufgeführt, die von dieser Abfrage unterstützt werden. Alle aufgeführten Parameter sind Abfrageparameter.

Parameter
Erforderliche Parameter
part string
Der Parameter part gibt eine durch Kommas getrennte Liste einer oder mehrerer search-Ressourcenattribute an, die die API-Antwort enthalten soll. Legen Sie den Parameterwert auf snippet fest.
Filter (geben Sie 0 oder 1 der folgenden Parameter an)
forContentOwner boolean
Dieser Parameter kann nur in einer autorisierten Anfrage verwendet werden und ist ausschließlich für YouTube-Content-Partner vorgesehen.

Durch den Parameter forContentOwner wird die Suche auf Videos beschränkt, deren Eigentümer der Rechteinhaber onBehalfOfContentOwner ist. Wenn forContentOwner auf „true“ gesetzt ist, muss die Anfrage auch die folgenden Anforderungen erfüllen:
  • Der Parameter onBehalfOfContentOwner ist erforderlich.
  • Der Nutzer, der die Anfrage genehmigt, muss ein Konto verwenden, das mit dem angegebenen Rechteinhaber verknüpft ist.
  • Der Wert des Parameters type muss auf video gesetzt sein.
  • Keine der folgenden Parameter kann festgelegt werden: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Dieser Parameter kann nur in einer autorisierten Anfrage verwendet werden. Mit dem Parameter forDeveloper wird die Suche so eingeschränkt, dass nur Videos abgerufen werden, die über die App oder Website des Entwicklers hochgeladen wurden. Der API-Server verwendet die Anmeldedaten der Anfrage, um den Entwickler zu identifizieren. Der forDeveloper-Parameter kann zusammen mit optionalen Suchparametern wie dem Parameter q verwendet werden.

Für diese Funktion wird jedes hochgeladene Video automatisch mit der Projektnummer gekennzeichnet, die mit der App des Entwicklers in der Google Developers Console verknüpft ist.

Wenn der forDeveloper-Parameter bei einer Suchanfrage anschließend auf true gesetzt wird, verwendet der API-Server die Autorisierungsanmeldedaten der Anfrage, um den Entwickler zu identifizieren. Ein Entwickler kann daher die Ergebnisse auf Videos beschränken, die über seine eigene App oder Website hochgeladen wurden, jedoch nicht auf Videos, die über andere Apps oder Websites hochgeladen wurden.
forMine boolean
Dieser Parameter kann nur in einer autorisierten Anfrage verwendet werden. Mit dem Parameter forMine wird die Suche so eingeschränkt, dass nur Videos abgerufen werden, die dem authentifizierten Nutzer gehören. Wenn Sie diesen Parameter auf true festlegen, muss für den Parameter type auch video festgelegt werden. Darüber hinaus kann keiner der folgenden Parameter in derselben Anfrage festgelegt werden: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
Optionale Parameter
channelId string
Der Parameter channelId gibt an, dass die API-Antwort nur Ressourcen enthalten soll, die vom Kanal erstellt wurden.

Hinweis:Suchergebnisse sind auf maximal 500 Videos beschränkt, wenn in deiner Anfrage ein Wert für den Parameter channelId und der Wert für type auf video festgelegt wird. Damit wird aber auch nicht der Filter forContentOwner, forDeveloper oder forMine festgelegt.
channelType string
Mit dem Parameter channelType können Sie eine Suche auf einen bestimmten Kanaltyp beschränken.

Zulässige Werte:
  • any: Gibt alle Kanäle zurück.
  • show: Es werden nur Sendungen abgerufen.
eventType string
Mit dem Parameter eventType wird die Suche auf Nachrichten an alle beschränkt. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • completed: Es werden nur abgeschlossene Übertragungen berücksichtigt.
  • live: Nur aktive Übertragungen werden gesendet.
  • upcoming: Es werden nur künftige Übertragungen berücksichtigt.
location string
Der Parameter location definiert zusammen mit dem Parameter locationRadius eine kreisförmige geografische Region und beschränkt die Suche auf Videos, die in ihren Metadaten einen geografischen Standort innerhalb dieser Region angeben. Der Parameterwert ist ein String, der Koordinaten für den Längen- und Breitengrad angibt, z.B. (37.42307,-122.08427).

  • Der Parameterwert location gibt den Punkt in der Mitte des Bereichs an.
  • Der locationRadius-Parameter gibt die maximale Entfernung an, die der mit einem Video verknüpfte Ort von diesem Punkt aus entfernt werden kann, damit das Video weiterhin in den Suchergebnissen berücksichtigt wird.
Die API gibt einen Fehler zurück, wenn in Ihrer Anfrage ein Wert für den Parameter location angegeben ist, aber nicht den Wert für den Parameter locationRadius.

Hinweis: Wenn Sie einen Wert für diesen Parameter festlegen, müssen Sie auch den Wert des type-Parameters auf video festlegen.
locationRadius string
Der Parameter locationRadius definiert zusammen mit dem Parameter location eine kreisförmige geografische Region.

Der Parameterwert muss eine Gleitkommazahl sein, gefolgt von einer Maßeinheit. Gültige Maßeinheiten sind m, km, ft und mi. Gültige Parameterwerte sind z. B. 1500m, 5km, 10000ft und 0.75mi. Die API unterstützt keine locationRadius-Parameterwerte, die größer als 1.000 Kilometer sind.

Hinweis:Weitere Informationen finden Sie in der Definition des Parameters location.
maxResults unsigned integer
Der Parameter maxResults gibt die maximale Anzahl von Elementen an, die in der Ergebnismenge zurückgegeben werden sollen. Zulässige Werte sind 0 bis 50 (jeweils einschließlich). Der Standardwert ist 5.
onBehalfOfContentOwner string
Dieser Parameter kann nur in einer autorisierten Anfrage verwendet werden. Hinweis:Dieser Parameter ist ausschließlich für YouTube-Content-Partner vorgesehen.

Mit dem Parameter onBehalfOfContentOwner wird angegeben, dass durch die Autorisierungsanmeldedaten ein YouTube-CMS-Nutzer identifiziert wird, der im Namen des Rechteinhabers handelt, der im Parameterwert angegeben ist. Dieser Parameter ist für YouTube-Content-Partner vorgesehen, die Inhaber und Manager vieler verschiedener YouTube-Kanäle sind. Die Rechteinhaber können sich einmalig authentifizieren und auf alle ihre Video- und Kanaldaten zugreifen, ohne für jeden einzelnen Kanal Anmeldedaten zur Authentifizierung angeben zu müssen. Das CMS-Konto, mit dem sich der Nutzer authentifiziert, muss mit dem angegebenen YouTube-Rechteinhaber verknüpft sein.
order string
Der Parameter order gibt die Methode an, mit der die Ressourcen in der API-Antwort sortiert werden. Der Standardwert ist relevance.

Zulässige Werte:
  • date: Die Ressourcen werden in umgekehrter chronologischer Reihenfolge nach dem Erstellungsdatum sortiert.
  • rating: Die Ressourcen sind von der höchsten zur niedrigsten Bewertung sortiert.
  • relevance: Die Ressourcen werden entsprechend ihrer Relevanz für die Suchanfrage sortiert. Das ist der Standardwert für diesen Parameter.
  • title: Die Ressourcen sind alphabetisch nach Titel sortiert.
  • videoCount: Die Kanäle werden in absteigender Reihenfolge nach der Anzahl ihrer hochgeladenen Videos sortiert.
  • viewCount: Die Ressourcen sind absteigend nach der Anzahl der Aufrufe sortiert. Bei Liveübertragungen werden die Videos nach der Anzahl der gleichzeitigen Zuschauer sortiert.
pageToken string
Der Parameter pageToken gibt eine bestimmte Seite in der Ergebnismenge an, die zurückgegeben werden soll. In einer API-Antwort identifizieren die Properties nextPageToken und prevPageToken andere Seiten, die abgerufen werden können.
publishedAfter datetime
Der Parameter publishedAfter gibt an, dass die API-Antwort nur Ressourcen enthalten sollte, die am oder nach dem angegebenen Zeitpunkt erstellt wurden. Der Wert ist ein nach RFC 3339 formatierter Datum-/Uhrzeitwert (1970-01-01T00:00:00Z).
publishedBefore datetime
Der Parameter publishedBefore gibt an, dass die API-Antwort nur Ressourcen enthalten sollte, die vor oder zur angegebenen Zeit erstellt wurden. Der Wert ist ein nach RFC 3339 formatierter Datum-/Uhrzeitwert (1970-01-01T00:00:00Z).
q string
Der Parameter q gibt den Suchbegriff an, nach dem gesucht werden soll.

Sie können dazu auch die booleschen Operatoren NOT (-) und OR (|) verwenden, um Videos auszuschließen oder Videos zu finden, die mit einem von mehreren Suchbegriffen verknüpft sind. Wenn du beispielsweise nach Videos suchen möchtest, die entweder „boaten“ oder „segeln“ entsprechen, setze den Parameterwert q auf boating|sailing. Wenn Sie nach Videos suchen möchten, die entweder „Segeln“ oder „Segeln“ entsprechen, aber nicht „Angeln“, wird der q-Parameterwert auf boating|sailing -fishing festgelegt. Der senkrechte Strich muss mit URL-Escape-Zeichen versehen sein, wenn er in Ihrer API-Anfrage gesendet wird. Der URL-Escape-Wert für den senkrechten Strich ist %7C.
regionCode string
Der Parameter regionCode weist die API an, Suchergebnisse für Videos zurückzugeben, die im angegebenen Land angesehen werden können. Der Parameterwert ist ein ISO 3166-1 Alpha-2-Ländercode.
relevanceLanguage string
Durch den Parameter relevanceLanguage wird die API angewiesen, Suchergebnisse zu liefern, die für die angegebene Sprache am relevantesten sind. Der Parameterwert ist in der Regel ein zweistelliger ISO 639-1-Sprachcode. Verwende jedoch die Werte zh-Hans für vereinfachtes Chinesisch und zh-Hant für traditionelles Chinesisch. Ergebnisse in anderen Sprachen werden dennoch zurückgegeben, wenn sie für den Suchbegriff sehr relevant sind.
safeSearch string
Mit dem Parameter safeSearch wird angegeben, ob die Suchergebnisse eingeschränkte Inhalte sowie Standardinhalte enthalten sollen.

Folgende Werte sind zulässig:
  • moderate: YouTube filtert einige Inhalte aus den Suchergebnissen heraus und filtert zumindest Inhalte, die in deiner Sprache eingeschränkt sind. Aufgrund ihres Inhalts können Suchergebnisse aus den Suchergebnissen entfernt oder in den Suchergebnissen abgewertet werden. Das ist der Standardparameterwert.
  • none: YouTube filtert die Suchergebnisgruppe nicht.
  • strict: Es wird versucht, alle eingeschränkten Inhalte aus den Suchergebnissen auszuschließen. Aufgrund ihres Inhalts können Suchergebnisse aus den Suchergebnissen entfernt oder in den Suchergebnissen abgewertet werden.
topicId string
Der Parameter topicId gibt an, dass die API-Antwort nur Ressourcen enthalten soll, die mit dem angegebenen Thema verknüpft sind. Der Wert gibt eine Freebase-Themen-ID an.

Wichtig:Aufgrund der Einstellung von Freebase und der Freebase API funktioniert der Parameter topicId seit dem 27. Februar 2017 anders. YouTube unterstützt dann nur einen kleinen Satz ausgewählter Themen-IDs. Diese kleineren IDs können Sie nur als Werte für diesen Parameter verwenden.

type string
Mit dem Parameter type wird eine Suchanfrage so eingeschränkt, dass nur ein bestimmter Ressourcentyp abgerufen wird. Der Wert ist eine durch Kommas getrennte Liste von Ressourcentypen. Der Standardwert ist video,channel,playlist.

Zulässige Werte:
  • channel
  • playlist
  • video
videoCaption string
Der Parameter videoCaption gibt an, ob die API Suchergebnisse für Videos anhand von Untertiteln filtern soll. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • any: Ergebnisse werden nicht nach der Verfügbarkeit von Untertiteln gefiltert.
  • closedCaption: Es werden nur Videos mit Untertiteln berücksichtigt.
  • none: Enthält nur Videos ohne Untertitel.
videoCategoryId string
Mit dem Parameter videoCategoryId werden Videosuchergebnisse nach Kategorie gefiltert. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video festlegen.
videoDefinition string
Mit dem Parameter videoDefinition können Sie eine Suche einschränken, sodass nur Videos mit hoher Auflösung (HD) oder Standardauflösung (SD-Videos) angezeigt werden. HD-Videos sind mit einer Auflösung von mindestens 720p verfügbar. Es ist aber auch möglich, dass höhere Auflösungen wie 1080p verwendet werden. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • any: Gibt alle Videos zurück, unabhängig von ihrer Auflösung.
  • high: Es werden nur HD-Videos abgerufen.
  • standard: Ruft nur Videos in Standardauflösung ab.
videoDimension string
Mit dem Parameter videoDimension können Sie die Suche auf 2D- oder 3D-Videos beschränken. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • 2d: Damit lassen sich Suchergebnisse auf 3D-Videos beschränken.
  • 3d: Damit lassen sich Suchergebnisse auf 3D-Videos beschränken.
  • any: Es werden sowohl 3D- als auch Nicht-3D-Videos in die Ergebnisse aufgenommen. „Immer“ ist der Standardwert.
videoDuration string
Der Parameter videoDuration filtert Videosuchergebnisse nach ihrer Dauer. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • any: Ergebnisse der Videosuche werden nicht nach der Dauer gefiltert. „Immer“ ist der Standardwert.
  • long: Nur Videos, die länger als 20 Minuten sind, werden aufgenommen.
  • medium: Nur Videos mit einer Länge von vier bis maximal 20 Minuten (einschließlich) werden aufgenommen.
  • short: Nur Videos mit einer Länge von weniger als vier Minuten werden aufgenommen.
videoEmbeddable string
Mit dem Parameter videoEmbeddable können Sie eine Suche auf Videos beschränken, die in eine Webseite eingebettet werden können. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • any: gibt alle Videos zurück, unabhängig davon, ob sie eingebettet sind oder nicht.
  • true: Es werden nur eingebettete Videos abgerufen.
videoLicense string
Mit dem Parameter videoLicense werden Suchergebnisse so gefiltert, dass nur Videos mit einer bestimmten Lizenz angezeigt werden. YouTube-Video-Uploader haben die Möglichkeit, entweder die Creative-Commons-Lizenz oder die Standard-YouTube-Lizenz an ihre Videos anzuhängen. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • any: Gibt alle Videos zurück, unabhängig von der vorhandenen Lizenz, die mit den Suchparametern übereinstimmen.
  • creativeCommon: Es werden nur Videos zurückgegeben, die eine Creative-Commons-Lizenz haben. Nutzer können Videos mit dieser Lizenz in anderen von ihnen erstellten Videos wiederverwenden. Weitere Informationen
  • youtube: Es werden nur Videos mit der YouTube-Standardlizenz zurückgegeben.
videoPaidProductPlacement string
Der Parameter videoPaidProductPlacement filtert die Suchergebnisse so, dass nur Videos angezeigt werden, die der Creator als bezahlt bezahlt hat. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video festlegen.

Zulässige Werte:
  • any: Gibt alle Videos zurück, unabhängig davon, ob sie bezahlte Werbung enthalten.
  • true: Es werden nur Videos mit bezahlter Werbung abgerufen.
videoSyndicated string
Mit dem Parameter videoSyndicated kannst du Suchanfragen auf Videos beschränken, die außerhalb von youtube.com wiedergegeben werden können. Wenn du einen Wert für diesen Parameter angibst, musst du den Wert des Parameters type auf video festlegen.

Zulässige Werte:
  • any: Gibt alle syndizierten oder nicht veröffentlichten Videos zurück.
  • true: Es werden nur syndizierte Videos abgerufen.
videoType string
Mit dem Parameter videoType können Sie eine Suche auf einen bestimmten Videotyp beschränken. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte:
  • any: Gibt alle Videos zurück.
  • episode: Hiermit werden nur Folgen von Sendungen abgerufen.
  • movie: Ruft nur Filme ab.

Anfragetext

Geben Sie beim Aufruf dieser Methode keinen Anfragetext an.

Antwort

Bei Erfolg gibt diese Methode einen Antworttext mit der folgenden Struktur zurück:

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

Attribute

In der folgenden Tabelle werden die Attribute definiert, die in einem Suchergebnis angezeigt werden:

Attribute
kind string
Identifiziert den Typ der API-Ressource. Der Wert ist youtube#searchListResponse.
etag etag
Das ETag dieser Ressource.
nextPageToken string
Das Token, das als Wert des Parameters pageToken verwendet werden kann, um die nächste Seite im Ergebnissatz abzurufen.
prevPageToken string
Das Token, das als Wert des Parameters pageToken verwendet werden kann, um die vorherige Seite in der Ergebnismenge abzurufen.
regionCode string
Der Regionscode, der für die Suchanfrage verwendet wurde. Der Attributwert ist ein aus zwei Buchstaben bestehender ISO-Ländercode zur Identifizierung der Region. Die Methode i18nRegions.list gibt eine Liste der unterstützten Regionen zurück. Der Standardwert ist US. Wenn eine nicht unterstützte Region angegeben ist, wählt YouTube möglicherweise zusätzlich zum Standardwert eine andere Region für die Verarbeitung der Abfrage aus.
pageInfo object
Das pageInfo-Objekt enthält Seiteninformationen für die Ergebnismenge.
pageInfo.totalResults integer
Die Gesamtzahl der Ergebnisse in der Ergebnismenge.Der Wert ist ein Näherungswert und stellt keinen genauen Wert dar. Der Maximalwert beträgt 1.000.000.

Dieser Wert sollte nicht für die Erstellung von Paginierungslinks verwendet werden. Verwenden Sie stattdessen die Property-Werte nextPageToken und prevPageToken, um zu bestimmen, ob bei den Paginierungslinks angezeigt werden soll.
pageInfo.resultsPerPage integer
Die Anzahl der Ergebnisse in der API-Antwort.
items[] list
Eine Liste der Ergebnisse, die den Suchkriterien entsprechen.

Beispiele

Hinweis: In den folgenden Codebeispielen werden möglicherweise nicht alle unterstützten Programmiersprachen dargestellt. Eine Liste der unterstützten Sprachen finden Sie in der Dokumentation zu Clientbibliotheken.

Apps Script

Diese Funktion sucht nach Videos, die mit dem Keyword „Hunde“ zusammenhängen. Die Video-IDs und -titel der Suchergebnisse werden im Apps Script-Protokoll aufgezeichnet.

In diesem Beispiel sind die Ergebnisse auf 25 begrenzt. Wenn du weitere Ergebnisse zurückgeben möchtest, übergib die zusätzlichen Parameter wie hier beschrieben: 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);
  }
}

Ok

In diesem Codebeispiel wird die Methode search.list der API aufgerufen, um mit einem bestimmten Keyword verknüpfte Suchergebnisse abzurufen.

In diesem Beispiel wird die Go-Clientbibliothek verwendet.

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

Im folgenden Codebeispiel wird die Methode search.list der API aufgerufen, um Suchergebnisse für ein bestimmtes Keyword abzurufen.

In diesem Beispiel wird die .NET-Clientbibliothek verwendet.

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

In diesem Beispiel wird die Methode search.list der API aufgerufen, um Suchergebnisse zu erhalten, die mit einem bestimmten Keyword verknüpft sind.

In diesem Beispiel wird die Ruby-Clientbibliothek verwendet.

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

Fehler

In der folgenden Tabelle sehen Sie Fehlermeldungen, die von der API als Reaktion auf einen Aufruf dieser Methode zurückgegeben werden könnten. Weitere Informationen finden Sie in der Dokumentation zu Fehlermeldungen.

Fehlertyp Fehlerdetails Beschreibung
badRequest (400) invalidChannelId Der Parameter channelId hat eine ungültige Kanal-ID angegeben.
badRequest (400) invalidLocation Der Parameterwert location und/oder locationRadius wurde falsch formatiert.
badRequest (400) invalidRelevanceLanguage Der Parameterwert relevanceLanguage wurde falsch formatiert.
badRequest (400) invalidSearchFilter Die Anfrage enthält eine ungültige Kombination aus Suchfiltern und/oder Einschränkungen. Sie müssen den Parameter type auf video festlegen, wenn Sie den Parameter forContentOwner oder forMine auf true festlegen. Sie müssen auch den Parameter type auf video festlegen, wenn Sie einen Wert für die Parameter eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated oder videoType festlegen.

Jetzt testen

Verwenden Sie APIs Explorer, um diese API aufzurufen und die API-Anfrage und -Antwort anzusehen.