Search: list

Gibt eine Sammlung von Suchergebnissen zurück, die den in der API-Anfrage angegebenen Suchparametern entsprechen. Standardmäßig identifiziert ein Suchergebnissatz übereinstimmende video-, channel- und playlist-Ressourcen. Sie können jedoch Abfragen auch so konfigurieren, dass nur ein bestimmter Ressourcentyp abgerufen wird.

Kontingentauswirkung: Ein Aufruf dieser Methode hat Kontingentkosten von 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
Mit dem Parameter part wird eine durch Kommas getrennte Liste eines oder mehrerer search-Ressourcenattribute angegeben, die in der API-Antwort enthalten sein sollen. Legen Sie den Parameterwert auf snippet fest.
Filter (geben Sie 0 oder einen der folgenden Parameter an)
forContentOwner boolean
Dieser Parameter kann nur in einer ordnungsgemäß autorisierten Anfrage verwendet werden und ist ausschließlich für YouTube-Contentpartner bestimmt.

Durch den Parameter forContentOwner wird die Suche auf Videos beschränkt, die dem Rechteinhaber gehören, der mit dem Parameter onBehalfOfContentOwner angegeben wird. Wenn forContentOwner auf „true“ gesetzt ist, muss die Anfrage außerdem die folgenden Anforderungen erfüllen:
  • Der Parameter onBehalfOfContentOwner ist erforderlich.
  • Der Nutzer, der die Anfrage autorisiert, muss ein Konto verwenden, das mit dem angegebenen Rechteinhaber verknüpft ist.
  • Der Parameterwert type muss auf video festgelegt werden.
  • Die folgenden anderen Parameter können nicht festgelegt werden: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Dieser Parameter kann nur in einer ordnungsgemäß autorisierten Anfrage verwendet werden. Der Parameter forDeveloper schränkt die Suche auf Videos ein, die über die Anwendung oder Website des Entwicklers hochgeladen wurden. Der API-Server verwendet die Autorisierungsanmeldedaten der Anfrage, um den Entwickler zu identifizieren. Der forDeveloper-Parameter kann in Verbindung mit optionalen Suchparametern wie dem q-Parameter verwendet werden.

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

Wenn der forDeveloper-Parameter in einer Suchanfrage nachträglich auf true gesetzt wird, verwendet der API-Server die Autorisierungsanmeldedaten der Anfrage, um den Entwickler zu identifizieren. Daher kann ein Entwickler die Ergebnisse auf Videos beschränken, die über die eigene App oder Website des Entwicklers hochgeladen wurden, aber nicht auf Videos, die über andere Apps oder Websites hochgeladen wurden.
forMine boolean
Dieser Parameter kann nur in einer ordnungsgemäß autorisierten Anfrage verwendet werden. Der Parameter forMine schränkt die Suche auf Videos ein, die dem authentifizierten Nutzer gehören. Wenn Sie diesen Parameter auf true setzen, muss der Wert des Parameters type ebenfalls auf video festgelegt werden. Außerdem kann keiner der folgenden anderen 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 sollte, die vom Kanal erstellt wurden.

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

Zulässige Werte sind:
  • any: Es werden alle Kanäle zurückgegeben.
  • show: Nur Sendungen werden abgerufen.
eventType string
Der Parameter eventType schränkt die Suche nach Übertragungsereignissen ein. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • completed: Nur abgeschlossene Übertragungen werden berücksichtigt.
  • live: Es werden nur aktive Übertragungen berücksichtigt.
  • upcoming: Nur anstehende Übertragungen werden berücksichtigt.
location string
Durch den Parameter location wird in Verbindung mit dem Parameter locationRadius ein kreisförmiger geografischer Bereich definiert und die Suche auf Videos beschränkt, die in den Metadaten einen geografischen Standort angeben, der zu diesem Gebiet gehört. Der Parameterwert ist ein String, mit dem Breitengrad-/Längengradkoordinaten angegeben werden, 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 Standort von diesem Punkt entfernt sein darf, damit das Video weiterhin in den Suchergebnissen angezeigt wird.
Die API gibt einen Fehler zurück, wenn in Ihrer Anfrage ein Wert für den Parameter location, aber kein Wert für den Parameter locationRadius angegeben ist.

Hinweis:Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video festlegen.
locationRadius string
Der Parameter locationRadius definiert in Verbindung mit dem Parameter location ein kreisförmiges geografisches Gebiet.

Der Parameterwert muss eine Gleitkommazahl gefolgt von einer Maßeinheit sein. Gültige Maßeinheiten sind m, km, ft und mi. Gültige Parameterwerte sind beispielsweise 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 location-Parameters.
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 (einschließlich). Der Standardwert ist 5.
onBehalfOfContentOwner string
Dieser Parameter kann nur in einer ordnungsgemäß autorisierten Anfrage verwendet werden. Hinweis: Dieser Parameter ist ausschließlich für YouTube-Contentpartner vorgesehen.

Der Parameter onBehalfOfContentOwner gibt an, dass durch die Autorisierungsanmeldedaten der Anfrage ein YouTube CMS-Nutzer identifiziert wird, der im Namen des im Parameterwert angegebenen Rechteinhabers handelt. Dieser Parameter ist für YouTube-Content-Partner vorgesehen, die viele verschiedene YouTube-Kanäle besitzen und verwalten. Rechteinhaber können sich nur einmal authentifizieren und auf alle ihre Video- und Kanaldaten zugreifen, ohne für jeden einzelnen Kanal Authentifizierungsdaten 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 Ressourcen in der API-Antwort sortiert werden. Der Standardwert ist relevance.

Zulässige Werte sind:
  • date: Ressourcen werden in umgekehrter chronologischer Reihenfolge basierend auf dem Erstellungsdatum sortiert.
  • rating: Die Ressourcen werden von der höchsten zur niedrigsten Bewertung sortiert.
  • relevance: Ressourcen werden nach ihrer Relevanz für die Suchanfrage sortiert. Das ist der Standardwert für diesen Parameter.
  • title: Ressourcen sind alphabetisch nach Titel sortiert.
  • videoCount: Kanäle werden in absteigender Reihenfolge nach der Anzahl der hochgeladenen Videos sortiert.
  • viewCount: Die Ressourcen werden von der höchsten zur niedrigsten Anzahl an Aufrufen sortiert. Bei Liveübertragungen werden Videos nach der Anzahl der gleichzeitigen Zuschauer sortiert, während die Übertragungen läuft.
pageToken string
Der pageToken-Parameter gibt eine bestimmte Seite in der Ergebnismenge an, die zurückgegeben werden soll. In einer API-Antwort identifizieren die Attribute nextPageToken und prevPageToken andere Seiten, die abgerufen werden könnten.
publishedAfter datetime
Der Parameter publishedAfter gibt an, dass die API-Antwort nur Ressourcen enthalten darf, die zum angegebenen Zeitpunkt oder danach 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 soll, 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 für Ihre Anfrage 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 mit „Bootfahren“ oder „Segeln“ übereinstimmen, setze den Parameterwert q auf boating|sailing. Um nach Videos zu suchen, die entweder mit „Bootfahren“ oder „Segeln“, aber nicht mit „Angeln“ übereinstimmen, setze den Parameterwert q auf boating|sailing -fishing. Beachten Sie, dass der senkrechte Strich URL-Escaping verwendet werden muss, wenn es in Ihrer API-Anfrage gesendet wird. Der URL-Escaping-Wert für das Pipe-Zeichen ist %7C.
regionCode string
Mit dem Parameter regionCode wird die API angewiesen, 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
Mit dem Parameter relevanceLanguage wird die API angewiesen, Suchergebnisse zurückzugeben, die für die angegebene Sprache am relevantesten sind. Der Parameterwert ist in der Regel ein aus zwei Buchstaben bestehender ISO 639-1-Sprachcode. Sie sollten jedoch die Werte zh-Hans für vereinfachtes Chinesisch und zh-Hant für traditionelles Chinesisch verwenden. Ergebnisse in anderen Sprachen werden weiterhin zurückgegeben, wenn sie für den Suchbegriff sehr relevant sind.
safeSearch string
Der Parameter safeSearch gibt an, ob die Suchergebnisse sowohl eingeschränkte als auch Standardinhalte enthalten sollen.

Zulässige Werte sind:
  • moderate: YouTube filtert einige Inhalte aus den Suchergebnissen. Zumindest filtert YouTube Inhalte heraus, 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: Die Suchergebnisse werden von YouTube nicht gefiltert.
  • strict: YouTube 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 identifiziert eine Freebase-Themen-ID.

Wichtig: Aufgrund der Einstellung von Freebase und der Freebase API funktioniert der Parameter topicId seit dem 27. Februar 2017 anders. Seit dieser Zeit unterstützt YouTube eine kleine Gruppe ausgewählter Themen-IDs. Sie können nur diese kleineren IDs als Werte für diesen Parameter verwenden.

type string
Der Parameter type schränkt eine Suchanfrage so ein, 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 sind:
  • channel
  • playlist
  • video
videoCaption string
Der Parameter videoCaption gibt an, ob die API Videosuchergebnisse danach filtern soll, ob sie Untertitel enthalten. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • any: Ergebnisse werden nicht nach Verfügbarkeit von Untertiteln gefiltert.
  • closedCaption: Es werden nur Videos mit Untertiteln angezeigt.
  • none: Es werden nur Videos ohne Untertitel berücksichtigt.
videoCategoryId string
Mit dem Parameter videoCategoryId werden Videosuchergebnisse anhand ihrer Kategorie gefiltert. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video setzen.
videoDefinition string
Mit dem Parameter videoDefinition können Sie die Suche auf Videos in High Definition (HD) oder Standardauflösung (SD) beschränken. HD-Videos können mit einer Auflösung von mindestens 720p wiedergegeben werden, wobei auch höhere Auflösungen wie 1080p möglich sind. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • any: Es werden alle Videos unabhängig von ihrer Auflösung zurückgegeben.
  • high: Nur HD-Videos werden abgerufen.
  • standard: Es werden nur Videos in Standardauflösung abgerufen.
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 type-Parameters auf video festlegen.

Zulässige Werte sind:
  • 2d: Die Suchergebnisse werden auf 3D-Videos eingeschränkt.
  • 3d: Die Suchergebnisse werden auf 3D-Videos beschränkt.
  • any: Sowohl 3D- als auch Nicht-3D-Videos werden in die zurückgegebenen Ergebnisse einbezogen. „Immer“ ist der Standardwert.
videoDuration string
Mit dem Parameter videoDuration werden Videosuchergebnisse anhand ihrer Dauer gefiltert. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • any: Videosuchergebnisse werden nicht nach ihrer Dauer gefiltert. „Immer“ ist der Standardwert.
  • long: Es werden nur Videos berücksichtigt, die länger als 20 Minuten sind.
  • medium: Es werden nur Videos berücksichtigt, die zwischen vier und 20 Minuten lang sind.
  • short: Es werden nur Videos berücksichtigt, die kürzer als vier Minuten sind.
videoEmbeddable string
Mit dem Parameter videoEmbeddable können Sie die Suche auf Videos beschränken, die auf einer Webseite eingebettet werden können. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • any: Es werden alle Videos zurückgegeben, unabhängig davon, ob sie einbettbar sind oder nicht.
  • true: Nur einbettbare Videos werden abgerufen.
videoLicense string
Mit dem Parameter videoLicense werden Suchergebnisse so gefiltert, dass nur Videos mit einer bestimmten Lizenz enthalten sind. Nutzer, die Videos auf YouTube hochladen, können entweder die Creative-Commons-Lizenz oder die Standard-YouTube-Lizenz an jedes ihrer Videos anhängen. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • any: Gibt unabhängig von ihrer Lizenz alle Videos zurück, die mit den Suchparametern übereinstimmen.
  • creativeCommon: Nur Videos mit einer Creative-Commons-Lizenz werden zurückgegeben. Nutzer können Videos mit dieser Lizenz in anderen von ihnen erstellten Videos wiederverwenden. Weitere Informationen
  • youtube: Nur Videos mit der Standard-YouTube-Lizenz werden zurückgegeben.
videoPaidProductPlacement string
Mit dem Parameter videoPaidProductPlacement werden Suchergebnisse so gefiltert, dass nur Videos angezeigt werden, die der Creator als bezahlte Werbung angegeben 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 sind:
  • any: Es werden alle Videos zurückgegeben, 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 die Suche 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 auch den Wert des type-Parameters auf video setzen.

Zulässige Werte sind:
  • any: Es werden alle Videos zurückgegeben, ob syndiziert oder nicht.
  • true: Nur syndizierte Videos werden abgerufen.
videoType string
Mit dem Parameter videoType können Sie die Suche auf einen bestimmten Videotyp beschränken. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des type-Parameters auf video festlegen.

Zulässige Werte sind:
  • any: Alle Videos werden zurückgegeben.
  • episode: Nur Folgen von Sendungen werden abgerufen.
  • movie: Nur Filme abrufen.

Anfragetext

Geben Sie beim Aufrufen 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 Eigenschaften 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 in der Ergebnismenge 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 Eigenschaftswert 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 wird, kann YouTube zur Verarbeitung der Anfrage trotzdem eine andere Region anstelle des Standardwerts auswählen.
pageInfo object
Das Objekt pageInfo enthält Seiteninformationen für den Ergebnissatz.
pageInfo.totalResults integer
Die Gesamtzahl der Ergebnisse in der Ergebnismenge.Der Wert ist ein Näherungswert und stellt keinen exakten Wert dar. Darüber hinaus beträgt der Höchstwert 1.000.000.

Sie sollten diesen Wert nicht zum Erstellen von Paginierungslinks verwenden. Verwenden Sie stattdessen die Attributwerte nextPageToken und prevPageToken, um zu bestimmen, ob Paginierungslinks angezeigt werden sollen.
pageInfo.resultsPerPage integer
Die Anzahl der Ergebnisse, die in der API-Antwort enthalten sind.
items[] list
Eine Liste mit Ergebnissen, die den Suchkriterien entsprechen.

Beispiele

Hinweis:Die folgenden Codebeispiele repräsentieren möglicherweise nicht alle unterstützten Programmiersprachen. 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“ in Zusammenhang stehen. Die Video-IDs und Titel der Suchergebnisse werden im Apps Script-Protokoll protokolliert.

In diesem Beispiel sind die Ergebnisse auf 25 begrenzt. Um mehr Ergebnisse zurückzugeben, musst du zusätzliche Parameter übergeben. Weitere Informationen dazu findest du hier: 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 Suchergebnisse abzurufen, die mit einem bestimmten Suchbegriff verknüpft sind.

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 abzurufen, die mit einem bestimmten Suchbegriff verknüpft sind.

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 abzurufen, die mit einem bestimmten Suchbegriff 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 finden Sie Fehlermeldungen, die die API als Antwort auf einen Aufruf dieser Methode zurückgeben könnte. 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 war falsch formatiert.
badRequest (400) invalidRelevanceLanguage Der Wert des Parameters relevanceLanguage war falsch formatiert.
badRequest (400) invalidSearchFilter Die Anfrage enthält eine ungültige Kombination aus Suchfiltern und/oder Einschränkungen. Hinweis: Sie müssen den Parameter type auf video festlegen, wenn Sie den Parameter forContentOwner oder forMine auf true setzen. Sie müssen den Parameter type auch auf video setzen, 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.