Search: list

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

Auswirkungen auf das Kontingent: 100 Aufrufe pro Tag. Ein Aufruf dieser Methode hat Kontingentkosten von 1 Einheit im Kontingent-Bucket für Suchanfragen.

Gängige Anwendungsfälle

Anfrage

HTTP-Anfrage

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

Parameter

In der folgenden Tabelle sind die Parameter aufgeführt, die diese Abfrage unterstützt. Alle aufgeführten Parameter sind Suchparameter.

Parameter
Erforderliche Parameter
part string
Mit dem Parameter part wird eine durch Kommas getrennte Liste mit einer oder mehreren search-Ressourceneigenschaften angegeben, die in der API-Antwort enthalten sein sollen. 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 ordnungsgemäß autorisierten Anfrage verwendet werden und ist ausschließlich für YouTube-Inhaltspartner vorgesehen.

Mit dem Parameter forContentOwner wird die Suche auf Videos beschränkt, die dem durch den Parameter onBehalfOfContentOwner identifizierten Rechteinhaber gehören. 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.
  • Keiner der folgenden anderen Parameter kann festgelegt werden: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Dieser Parameter kann nur in einer ordnungsgemäß autorisierten Anfrage verwendet werden. Mit dem Parameter forDeveloper wird die Suche auf Videos beschränkt, die über die Anwendung oder Website des Entwicklers hochgeladen wurden. Der API-Server verwendet die Autorisierungsanmeldedaten der Anfrage, um den Entwickler zu identifizieren. Der Parameter forDeveloper kann in Verbindung mit optionalen Suchparametern wie dem Parameter q verwendet werden.

Bei dieser Funktion wird jedes hochgeladene Video automatisch mit der Projektnummer getaggt, die mit der Anwendung des Entwicklers in der Google Developers Console verknüpft ist.

Wenn bei einer Suchanfrage der Parameter forDeveloper auf true gesetzt wird, verwendet der API-Server die Autorisierungsanmeldedaten der Anfrage, um den Entwickler zu identifizieren. Ein Entwickler kann die Ergebnisse daher auf Videos beschränken, die über die eigene App oder Website des Entwicklers hochgeladen wurden, nicht aber auf Videos, die über andere Apps oder Websites hochgeladen wurden.
forMine boolean
Dieser Parameter kann nur in einer ordnungsgemäß 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 der Wert des Parameters type ebenfalls auf video festgelegt werden. Außerdem darf 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 soll, die vom Kanal erstellt wurden.

Hinweis:Die 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 ist, aber keiner der Filter forContentOwner, forDeveloper oder forMine festgelegt ist.
channelType string
Mit dem Parameter channelType kannst du eine Suche auf einen bestimmten Kanaltyp beschränken.

Zulässige Werte sind:
  • any: Alle Kanäle werden zurückgegeben.
  • show – Nur Serien abrufen.
eventType string
Mit dem Parameter eventType wird eine Suche auf Übertragungsereignisse beschränkt. 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:
  • completed – Nur abgeschlossene Übertragungen einbeziehen.
  • live: Nur aktive Übertragungen einbeziehen.
  • upcoming: Nur zukünftige Übertragungen einbeziehen.
location string
Der Parameter location definiert zusammen mit dem Parameter locationRadius einen kreisförmigen geografischen Bereich und beschränkt die Suche auf Videos, in deren Metadaten ein geografischer Standort innerhalb dieses Bereichs angegeben ist. Der Parameterwert ist ein String, der Breiten-/Längengradkoordinaten angibt, z.B. (37.42307,-122.08427).

  • Der Parameterwert location gibt den Punkt in der Mitte des Bereichs an.
  • Mit dem Parameter locationRadius wird die maximale Entfernung angegeben, die der mit einem Video verknüpfte Ort von diesem Punkt haben darf, damit das Video 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 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 im Ergebnis 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-Inhaltspartner vorgesehen.

Der Parameter onBehalfOfContentOwner gibt an, dass die Autorisierungsdaten der Anfrage einen YouTube-CMS-Nutzer identifizieren, der im Namen des im Parameterwert angegebenen Rechteinhabers handelt. Dieser Parameter ist für YouTube-Inhaltspartner gedacht, die viele verschiedene YouTube-Kanäle besitzen und verwalten. Rechteinhaber können sich einmal authentifizieren und erhalten dann Zugriff auf alle ihre Video- und Kanaldaten, 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 nach dem Erstellungsdatum sortiert. Hinweis:Da diese Funktion auf dem Suchindex basiert, kann es bei neuen Inhalten zu Verzögerungen bei der Indexierung kommen. Außerdem sind die Ergebnisse möglicherweise unvollständig. Verwende nicht search.list, um die zuletzt hochgeladenen Videos eines Kanals zuverlässig abzurufen. Verwenden Sie stattdessen die Methode playlistItems.list, um die Upload-Playlist des Kanals abzurufen.
  • rating: Ressourcen werden von der höchsten zur niedrigsten Bewertung sortiert. Hinweis:Diese Bewertung wird anhand eines internen algorithmischen Werts berechnet und entspricht nicht genau einer absteigenden Anzahl von „Mag ich“-Bewertungen.
  • relevance: Ressourcen werden nach ihrer Relevanz für die Suchanfrage sortiert. Dies 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 der hochgeladenen Videos sortiert.
  • viewCount: Die Ressourcen werden nach der Anzahl der Aufrufe sortiert, von der höchsten zur niedrigsten. Bei Liveübertragungen werden die Videos nach der Anzahl der gleichzeitigen Zuschauer sortiert, während die Übertragungen laufen.
pageToken string
Der Parameter pageToken gibt eine bestimmte Seite in der Ergebnismenge an, die zurückgegeben werden soll. In einer API-Antwort geben die Attribute nextPageToken und prevPageToken andere Seiten an, die abgerufen werden könnten.
publishedAfter datetime
Der Parameter publishedAfter gibt an, dass die API-Antwort nur Ressourcen enthalten soll, die zum oder nach dem angegebenen Zeitpunkt erstellt wurden. Der Wert ist ein Datum/Uhrzeit-Wert im RFC 3339-Format (1970-01-01T00:00:00Z).
publishedBefore datetime
Der Parameter publishedBefore gibt an, dass die API-Antwort nur Ressourcen enthalten soll, die vor oder zum angegebenen Zeitpunkt erstellt wurden. Der Wert ist ein RFC 3339-formatiertes Datum/Uhrzeit-Wert (1970-01-01T00:00:00Z).
q string
Mit dem Parameter q wird der Suchbegriff angegeben, nach dem gesucht werden soll.

In Ihrer Anfrage können Sie 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 Sie beispielsweise nach Videos suchen möchten, die entweder „Bootfahren“ oder „Segeln“ enthalten, legen Sie den Parameterwert q auf boating|sailing fest. Wenn Sie nach Videos suchen möchten, die entweder „boating“ oder „sailing“, aber nicht „fishing“ enthalten, setzen Sie den Parameterwert q auf boating|sailing -fishing. Beachten Sie, dass das Pipe-Zeichen in der API-Anfrage URL-codiert sein muss. Der URL-codierte 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 zweistelliger Sprachcode gemäß ISO 639-1. Sie sollten jedoch die Werte zh-Hans für vereinfachtes Chinesisch und zh-Hant für traditionelles Chinesisch verwenden. Beachten Sie, dass Ergebnisse in anderen Sprachen weiterhin zurückgegeben werden, wenn sie für die Suchanfrage 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 bestimmte Inhalte aus den Suchergebnissen heraus, mindestens jedoch Inhalte, die in deiner Region eingeschränkt sind. Je nach Inhalt können Suchergebnisse aus den Suchergebnissen entfernt oder darin herabgestuft werden. Dies ist der Standardparameterwert.
  • none: YouTube filtert die Suchergebnisse nicht.
  • strict: YouTube versucht, alle eingeschränkten Inhalte aus den Suchergebnissen auszuschließen. Je nach Inhalt können Suchergebnisse aus den Suchergebnissen entfernt oder darin herabgestuft werden.
topicId string
Der Parameter topicId gibt an, dass die API-Antwort nur Ressourcen enthalten soll, die dem angegebenen Thema zugeordnet 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. Damals begann YouTube, eine kleine Auswahl an ausgewählten Themen-IDs zu unterstützen. Nur diese kleinere Auswahl an IDs kann als Werte für diesen Parameter verwendet werden.

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 sind:
  • channel
  • playlist
  • video
videoCaption string
Mit dem Parameter videoCaption wird angegeben, ob die API die Videosuchergebnisse danach filtern soll, ob sie Untertitel haben. 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 – Ergebnisse nicht nach der Verfügbarkeit von Untertiteln filtern.
  • closedCaption – Es werden nur Videos mit Untertiteln angezeigt.
  • none: Nur Videos ohne Untertitel einbeziehen.
videoCategoryId string
Mit dem Parameter videoCategoryId werden die Suchergebnisse für Videos nach ihrer 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 kannst du eine Suche auf Videos in HD- (High Definition) oder SD-Qualität (Standard Definition) beschränken. HD-Videos können mit mindestens 720p wiedergegeben werden. Möglicherweise sind auch höhere Auflösungen wie 1080p verfügbar. 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: Alle Videos werden zurückgegeben, unabhängig von ihrer Auflösung.
  • high: Es werden nur HD-Videos abgerufen.
  • standard: Es werden nur Videos in Standardauflösung abgerufen.
videoDimension string
Mit dem Parameter videoDimension kannst du eine 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 festlegen.

Zulässige Werte sind:
  • 2d: Suchergebnisse auf 3D-Videos beschränken.
  • 3d: Suchergebnisse werden auf 3D-Videos beschränkt.
  • any: Sowohl 3D- als auch Nicht-3D-Videos werden in den Ergebnissen zurückgegeben. „Immer“ ist der Standardwert.
videoDuration string
Mit dem Parameter videoDuration werden Videosuchergebnisse nach ihrer Dauer gefiltert. 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: Die Suchergebnisse für Videos werden nicht nach Dauer gefiltert. „Immer“ ist der Standardwert.
  • long: Nur Videos mit einer Länge von mehr als 20 Minuten einbeziehen.
  • medium – Es dürfen nur Videos mit einer Länge zwischen 4 und 20 Minuten (einschließlich) verwendet werden.
  • short: Verwenden Sie nur Videos, die kürzer als vier Minuten sind.
videoEmbeddable string
Mit dem Parameter videoEmbeddable kannst du die 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 festlegen.

Zulässige Werte sind:
  • any: Gibt alle Videos zurück, unabhängig davon, ob sie eingebettet werden können oder nicht.
  • true: Es werden nur einbettbare Videos abgerufen.
videoLicense string
Mit dem Parameter videoLicense werden die Suchergebnisse so gefiltert, dass nur Videos mit einer bestimmten Lizenz angezeigt werden. Uploader können für jedes ihrer Videos entweder die Creative-Commons-Lizenz oder die Standard-YouTube-Lizenz auswählen. 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: Alle Videos, die den Suchparametern entsprechen, werden zurückgegeben, unabhängig davon, welche Lizenz sie haben.
  • creativeCommon: Es werden nur Videos mit einer Creative-Commons-Lizenz zurückgegeben. Nutzer können Videos mit dieser Lizenz in anderen Videos wiederverwenden, die sie erstellen. Weitere Informationen
  • youtube – Es werden nur Videos mit der Standard-YouTube-Lizenz zurückgegeben.
videoPaidProductPlacement string
Mit dem Parameter videoPaidProductPlacement werden die Suchergebnisse so gefiltert, dass nur Videos angezeigt werden, die laut Offenlegung des Creators bezahlte Werbung enthalten. Wenn Sie einen Wert für diesen Parameter angeben, müssen Sie auch den Wert des Parameters type auf video setzen.

Zulässige Werte sind:
  • any: Alle Videos werden 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 eine Suche auf Videos beschränken, die außerhalb von youtube.com abgespielt werden können. Wenn du einen Wert für diesen Parameter angibst, musst du auch den Wert des Parameters type auf video festlegen.

Zulässige Werte sind:
  • any – Alle Videos zurückgeben, unabhängig davon, ob sie syndiziert sind oder nicht.
  • true: Es werden nur syndizierte Videos abgerufen.
videoType string
Mit dem Parameter videoType kannst du 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 festlegen.

Zulässige Werte sind:
  • any: Alle Videos werden zurückgegeben.
  • episode: Nur Folgen von Serien abrufen.
  • 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 Attribute definiert, die in einem Suchergebnis angezeigt werden:

Attribute
kind string
Gibt den Typ der API-Ressource an. 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 Attributwert ist ein zweistelliger ISO-Ländercode, der die Region angibt. 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, wählt YouTube möglicherweise eine andere Region als den Standardwert aus, um die Anfrage zu verarbeiten.
pageInfo object
Das pageInfo-Objekt enthält Seiteninformationen für die Ergebnismenge.
pageInfo.totalResults integer
Die Gesamtzahl der Ergebnisse im Ergebnis-Set.Der Wert ist eine Schätzung und entspricht möglicherweise nicht dem genauen Wert. Außerdem 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 in der API-Antwort enthaltenen Ergebnisse.
items[] list
Eine Liste der Ergebnisse, die den Suchkriterien entsprechen.

Beispiele

Hinweis:Die folgenden Codebeispiele enthalten 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 „dogs“ zusammenhängen. Die Video-IDs und Titel der Suchergebnisse werden im Apps Script-Log protokolliert.

In diesem Beispiel werden die Ergebnisse auf 25 beschränkt. Wenn Sie mehr Ergebnisse erhalten möchten, übergeben Sie zusätzliche Parameter, wie hier beschrieben: 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);
  }
}

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 Keyword 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 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 sind Fehlermeldungen aufgeführt, 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 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. Beachten Sie, dass Sie den Parameter type auf video setzen müssen, wenn Sie entweder den Parameter forContentOwner oder forMine auf true setzen. 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.

Testen!

Verwenden Sie APIs Explorer, um diese API aufzurufen und die API-Anfrage und ‑Antwort zu sehen.