Search: list

Devuelve una colección de resultados de la búsqueda que coinciden con los parámetros de consulta especificados en la solicitud a la API. De forma predeterminada, un conjunto de resultados de la búsqueda identifica los recursos video, channel y playlist que coinciden, pero también puedes configurar consultas para recuperar solo un tipo específico de recurso.

Impacto en la cuota: 100 llamadas por día. Una llamada a este método tiene un costo de cuota de 1 unidad en el bucket de cuota de búsquedas.

Casos de uso habituales

Solicitud

Solicitud HTTP

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

Parámetros

En la siguiente tabla, se enumeran los parámetros que admite esta consulta. Todos los parámetros mencionados son parámetros de consulta.

Parámetros
Parámetros obligatorios
part string
El parámetro part especifica una lista separada por comas de una o más propiedades de recursos search que incluirá la respuesta de la API. Establece el valor del parámetro en snippet.
Filtros (especifica 0 o 1 de los siguientes parámetros)
forContentOwner boolean
Este parámetro solo se puede usar en una solicitud autorizada correctamente y está destinado exclusivamente a los socios de contenido de YouTube.

El parámetro forContentOwner restringe la búsqueda para recuperar solo los videos que pertenecen al propietario del contenido identificado por el parámetro onBehalfOfContentOwner. Si forContentOwner se establece como verdadero, la solicitud también debe cumplir con estos requisitos:
  • El parámetro onBehalfOfContentOwner es obligatorio.
  • El usuario que autoriza la solicitud debe usar una cuenta vinculada al propietario del contenido especificado.
  • El valor del parámetro type debe establecerse en video.
  • No se puede establecer ninguno de los siguientes parámetros: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Este parámetro solo se puede usar en una solicitud autorizada correctamente. El parámetro forDeveloper restringe la búsqueda para que solo se recuperen los videos subidos a través de la aplicación o el sitio web del desarrollador. El servidor de la API usa las credenciales de autorización de la solicitud para identificar al desarrollador. El parámetro forDeveloper se puede usar junto con parámetros de búsqueda opcionales, como el parámetro q.

Para esta función, cada video subido se etiqueta automáticamente con el número de proyecto asociado con la aplicación del desarrollador en Google Developers Console.

Cuando una solicitud de búsqueda establece posteriormente el parámetro forDeveloper en true, el servidor de la API usa las credenciales de autorización de la solicitud para identificar al desarrollador. Por lo tanto, un desarrollador puede restringir los resultados a los videos subidos a través de su propia app o sitio web, pero no a los videos subidos a través de otras apps o sitios.
forMine boolean
Este parámetro solo se puede usar en una solicitud autorizada correctamente. El parámetro forMine restringe la búsqueda para recuperar solo los videos que pertenecen al usuario autenticado. Si estableces este parámetro en true, el valor del parámetro type también se debe establecer en video. Además, ninguno de los siguientes parámetros se puede establecer en la misma solicitud: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
Parámetros opcionales
channelId string
El parámetro channelId indica que la respuesta de la API solo debe contener los recursos creados por el canal.

Nota: Los resultados de la búsqueda se limitan a un máximo de 500 videos si tu solicitud especifica un valor para el parámetro channelId y establece el valor del parámetro type en video, pero no establece uno de los filtros forContentOwner, forDeveloper o forMine.
channelType string
El parámetro channelType te permite restringir una búsqueda a un tipo de canal en particular.

Los valores aceptables son los siguientes:
  • any: Devuelve todos los canales.
  • show: Solo recupera programas.
eventType string
El parámetro eventType restringe la búsqueda a eventos de transmisión. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • completed: Solo incluye las transmisiones completadas.
  • live: Solo incluye las transmisiones activas.
  • upcoming: Solo incluye las próximas transmisiones.
location string
El parámetro location, junto con el parámetro locationRadius, define un área geográfica circular y también restringe una búsqueda a los videos que especifican, en sus metadatos, una ubicación geográfica que se encuentra dentro de esa área. El valor del parámetro es una cadena que especifica las coordenadas de latitud y longitud, p.ej., (37.42307,-122.08427).

  • El valor del parámetro location identifica el punto en el centro del área.
  • El parámetro locationRadius especifica la distancia máxima a la que puede estar la ubicación asociada con un video desde ese punto para que el video se siga incluyendo en los resultados de la búsqueda.
La API devuelve un error si tu solicitud especifica un valor para el parámetro location, pero no especifica un valor para el parámetro locationRadius.

Nota: Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.
locationRadius string
El parámetro locationRadius, junto con el parámetro location, define un área geográfica circular.

El valor del parámetro debe ser un número de punto flotante seguido de una unidad de medida. Las unidades de medición válidas son m, km, ft y mi. Por ejemplo, los valores de parámetro válidos incluyen 1500m, 5km, 10000ft y 0.75mi. La API no admite valores del parámetro locationRadius superiores a 1,000 kilómetros.

Nota: Consulta la definición del parámetro location para obtener más información.
maxResults unsigned integer
El parámetro maxResults especifica la cantidad máxima de elementos que se deben devolver en el conjunto de resultados. Los valores aceptables son de 0 a 50, ambos incluidos. El valor predeterminado es 5.

onBehalfOfContentOwner string
Este parámetro solo se puede usar en una solicitud autorizada correctamente. Nota: Este parámetro está destinado exclusivamente a los socios de contenido de YouTube.

El parámetro onBehalfOfContentOwner indica que las credenciales de autorización de la solicitud identifican a un usuario del CMS de YouTube que actúa en nombre del propietario del contenido especificado en el valor del parámetro. Este parámetro está dirigido a socios de contenido de YouTube que poseen y administran muchos canales de YouTube diferentes. Permite a los propietarios del contenido autenticarse una vez y tener acceso a todos los datos de sus videos y canales, sin tener que proporcionar credenciales de autenticación para cada canal. La cuenta de CMS con la que se autentica el usuario debe estar relacionada con el propietario del contenido de YouTube especificado.
order string
El parámetro order especifica el método que se usará para ordenar los recursos en la respuesta de la API. El valor predeterminado es relevance.

Los valores aceptables son los siguientes:
  • date: Los recursos se ordenan en orden cronológico inverso según la fecha en que se crearon. Nota: Debido a que esto depende del índice de la Búsqueda, es posible que experimentes demoras en la indexación del contenido nuevo o que recibas conjuntos de resultados incompletos. Para recuperar de forma confiable los videos subidos más recientemente a un canal, no uses search.list. En su lugar, usa el método playlistItems.list para recuperar la playlist de cargas del canal.
  • rating: Los recursos se ordenan de la calificación más alta a la más baja. Nota: Esta calificación se calcula con una puntuación algorítmica interna y no equivale estrictamente a un recuento descendente de Me gusta.
  • relevance: Los recursos se ordenan según su relevancia para la búsqueda. Este es el valor predeterminado de este parámetro.
  • title: Los recursos se ordenan alfabéticamente por título.
  • videoCount: Los canales se ordenan de forma descendente según la cantidad de videos subidos.
  • viewCount: Los recursos se ordenan de mayor a menor cantidad de vistas. En el caso de las transmisiones en vivo, los videos se ordenan por cantidad de usuarios simultáneos mientras se desarrollan.
pageToken string
El parámetro pageToken identifica una página específica en el conjunto de resultados que se debe devolver. En una respuesta de la API, las propiedades nextPageToken y prevPageToken identifican otras páginas que se podrían recuperar.
publishedAfter datetime
El parámetro publishedAfter indica que la respuesta de la API solo debe contener recursos creados en el momento especificado o después de este. Se trata de un valor de fecha y hora con formato RFC 3339 (1970-01-01T00:00:00Z).
publishedBefore datetime
El parámetro publishedBefore indica que la respuesta de la API solo debe contener recursos creados antes de la hora especificada o en ese momento. Se trata de un valor de fecha y hora con formato RFC 3339 (1970-01-01T00:00:00Z).
q string
El parámetro q especifica el término de búsqueda que se debe buscar.

Tu solicitud también puede usar los operadores booleanos NOT (-) y OR (|) para excluir videos o encontrar videos asociados con uno de varios términos de búsqueda. Por ejemplo, para buscar videos que coincidan con "navegación en bote" o "navegación a vela", establece el valor del parámetro q en boating|sailing. Del mismo modo, para buscar videos que coincidan con "boating" o "sailing", pero no con "fishing", establece el valor del parámetro q en boating|sailing -fishing. Ten en cuenta que el carácter de barra vertical debe incluir un escape de URL cuando se envíe en tu solicitud a la API. El valor con escape de URL para el carácter de barra vertical es %7C.
regionCode string
El parámetro regionCode indica a la API que devuelva resultados de la búsqueda de videos que se pueden ver en el país especificado. El valor del parámetro es un código de país ISO 3166-1 alfa-2.
relevanceLanguage string
El parámetro relevanceLanguage indica a la API que devuelva los resultados de la búsqueda más relevantes para el idioma especificado. Por lo general, el valor del parámetro es un código de idioma de dos letras de la norma ISO 639-1. Sin embargo, debes usar los valores zh-Hans para el chino simplificado y zh-Hant para el chino tradicional. Ten en cuenta que se seguirán mostrando resultados en otros idiomas si son muy relevantes para el término de búsqueda.
safeSearch string
El parámetro safeSearch indica si los resultados de la búsqueda deben incluir contenido restringido, además del contenido estándar.

Los valores aceptables son los siguientes:
  • moderate: YouTube filtrará parte del contenido de los resultados de la búsqueda y, como mínimo, filtrará el contenido que esté restringido en tu configuración regional. Los resultados de búsqueda se pueden eliminar o rebajar de posición, según su contenido. Este es el valor del parámetro predeterminado.
  • none: YouTube no filtrará el conjunto de resultados de la búsqueda.
  • strict: YouTube intentará excluir todo el contenido restringido del conjunto de resultados de la búsqueda. Los resultados de búsqueda se pueden eliminar o rebajar de posición, según su contenido.
topicId string
El parámetro topicId indica que la respuesta de la API solo debe contener recursos asociados con el tema especificado. El valor identifica un ID de tema de Freebase.

Importante: Debido a la baja de Freebase y de la API de Freebase, el parámetro topicId comenzó a funcionar de manera diferente a partir del 27 de febrero de 2017. En ese momento, YouTube comenzó a admitir un pequeño conjunto de IDs de temas seleccionados, y solo puedes usar ese conjunto más pequeño de IDs como valores para este parámetro.

type string
El parámetro type restringe una consulta de búsqueda para recuperar solo un tipo de recurso en particular. El valor es una lista separada por comas de los tipos de recursos. El valor predeterminado es video,channel,playlist.

Los valores aceptables son los siguientes:
  • channel
  • playlist
  • video
videoCaption string
El parámetro videoCaption indica si la API debe filtrar los resultados de la búsqueda de videos según si tienen subtítulos. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: No se filtran los resultados según la disponibilidad de subtítulos.
  • closedCaption: Solo incluye videos que tengan subtítulos.
  • none: Solo incluye los videos que no tienen subtítulos.
videoCategoryId string
El parámetro videoCategoryId filtra los resultados de la búsqueda de videos según su categoría. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.
videoDefinition string
El parámetro videoDefinition te permite restringir una búsqueda para que solo incluya videos en alta definición (HD) o definición estándar (SD). Los videos de alta definición están disponibles para reproducirse en por lo menos 720 píxeles, aunque también puede que estén disponibles resoluciones mayores, como 1080 píxeles. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: Muestra todos los videos, independientemente de su resolución.
  • high: Solo se recuperan videos en HD.
  • standard: Solo recupera videos en definición estándar.
videoDimension string
El parámetro videoDimension te permite restringir una búsqueda para recuperar solo videos en 2D o 3D. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • 2d: Restringe los resultados de la búsqueda para excluir los videos en 3D.
  • 3d: Restringe los resultados de la búsqueda para que solo incluyan videos en 3D.
  • any: Incluye videos en 3D y que no estén en 3D en los resultados que se devuelven. Este es el valor predeterminado.
videoDuration string
El parámetro videoDuration filtra los resultados de la búsqueda de videos según su duración. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: No filtra los resultados de la búsqueda de videos según su duración. Este es el valor predeterminado.
  • long: Solo incluye videos de más de 20 minutos.
  • medium: Solo incluye videos que duren entre cuatro y 20 minutos (inclusive).
  • short: Solo incluye videos que duren menos de cuatro minutos.
videoEmbeddable string
El parámetro videoEmbeddable te permite restringir una búsqueda solo a los videos que se pueden incorporar en una página web. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: Devuelve todos los videos, ya sean incorporables o no.
  • true: Solo recupera videos incorporables.
videoLicense string
El parámetro videoLicense filtra los resultados de la búsqueda para incluir solo los videos con una licencia en particular. YouTube permite que quienes suben videos elijan si quieren adjuntar la licencia Creative Commons o la licencia estándar de YouTube a cada uno de sus videos. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: Muestra todos los videos que coincidan con los parámetros de consulta, independientemente de la licencia que tengan.
  • creativeCommon: Solo se devuelven los videos que tienen una licencia Creative Commons. Los usuarios pueden volver a utilizar los videos con esta licencia en otros videos que creen. Obtén más información.
  • youtube: Solo se muestran los videos que tienen la licencia estándar de YouTube.
videoPaidProductPlacement string
El parámetro videoPaidProductPlacement filtra los resultados de la búsqueda para incluir solo los videos en los que el creador indicó que hay una promoción pagada. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: Devuelve todos los videos, independientemente de si contienen promociones pagadas.
  • true: Solo se recuperan los videos con promociones pagadas.
videoSyndicated string
El parámetro videoSyndicated te permite restringir una búsqueda solo a los videos que se pueden reproducir fuera de youtube.com. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: Muestra todos los videos, estén distribuidos o no.
  • true: Solo se recuperan los videos distribuidos.
videoType string
El parámetro videoType te permite restringir una búsqueda a un tipo de video en particular. Si especificas un valor para este parámetro, también debes establecer el valor del parámetro type en video.

Los valores aceptables son los siguientes:
  • any: Devuelve todos los videos.
  • episode: Solo recupera episodios de programas.
  • movie: Recupera solo películas.

Cuerpo de la solicitud

No proporciones un cuerpo de solicitud cuando invoques este método.

Respuesta

Si se aplica correctamente, este método muestra un cuerpo de respuesta con la siguiente estructura:

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

Propiedades

En la siguiente tabla, se definen las propiedades que aparecen en un resultado de la búsqueda:

Propiedades
kind string
Identifica el tipo de recurso de la API. El valor será youtube#searchListResponse.
etag etag
La Etag de este recurso.
nextPageToken string
Es el token que se puede usar como valor del parámetro pageToken para recuperar la siguiente página del conjunto de resultados.
prevPageToken string
Es el token que se puede usar como valor del parámetro pageToken para recuperar la página anterior en el conjunto de resultados.
regionCode string
Es el código de región que se usó para la búsqueda. El valor de la propiedad es un código de país ISO de dos letras que identifica la región. El método i18nRegions.list devuelve una lista de las regiones admitidas. El valor predeterminado es US. Si se especifica una región no admitida, es posible que YouTube seleccione otra región, en lugar del valor predeterminado, para controlar la búsqueda.
pageInfo object
El objeto pageInfo encapsula la información de paginación para el conjunto de resultados.
pageInfo.totalResults integer
Es la cantidad total de resultados en el conjunto de resultados.Ten en cuenta que el valor es una aproximación y puede no representar un valor exacto. Además, el valor máximo es 1,000,000.

No debes usar este valor para crear vínculos de paginación. En su lugar, usa los valores de las propiedades nextPageToken y prevPageToken para determinar si se deben mostrar vínculos de paginación.
pageInfo.resultsPerPage integer
Es la cantidad de resultados incluidos en la respuesta de la API.
items[] list
Es una lista de resultados que coinciden con los criterios de búsqueda.

Ejemplos

Nota: Es posible que las siguientes muestras de código no representen todos los lenguajes de programación admitidos. Consulta la documentación de las bibliotecas cliente para obtener una lista de los lenguajes admitidos.

Apps Script

Esta función busca los videos relacionados con la palabra clave "perros". Los ID de video y los títulos de los resultados de la búsqueda se registran en el registro de Apps Script.

Ten en cuenta que este ejemplo limita los resultados a 25. Para devolver más resultados, pasa parámetros adicionales como se documenta aquí: 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

Esta muestra de código llama al método search.list de la API para recuperar los resultados de la búsqueda asociados con una palabra clave en particular.

En este ejemplo, se usa la biblioteca cliente de 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

En la siguiente muestra de código, se llama al método search.list de la API para recuperar los resultados de la búsqueda asociados con una palabra clave en particular.

En este ejemplo se utiliza la biblioteca cliente .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

En este ejemplo, se llama al método search.list de la API para recuperar los resultados de la búsqueda asociados con una palabra clave en particular.

En este ejemplo se utiliza la biblioteca cliente 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

Errores

En la siguiente tabla, se identifican los mensajes de error que la API podría devolver en respuesta a una llamada a este método. Consulta la documentación sobre mensajes de error para obtener más información.

Tipo de error Detalle del error Descripción
badRequest (400) invalidChannelId El parámetro channelId especificó un ID de canal no válido.
badRequest (400) invalidLocation El valor del parámetro location o locationRadius tiene un formato incorrecto.
badRequest (400) invalidRelevanceLanguage El valor del parámetro relevanceLanguage tiene un formato incorrecto.
badRequest (400) invalidSearchFilter La solicitud contiene una combinación no válida de filtros de búsqueda o restricciones. Ten en cuenta que debes establecer el parámetro type en video si estableces los parámetros forContentOwner o forMine en true. También debes establecer el parámetro type en video si estableces un valor para los parámetros eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated o videoType.

Pruébalo

Usa APIs Explorer para llamar a esta API y ver la solicitud a la API y la respuesta.