Search: list

Retorna uma coleção de resultados da pesquisa que correspondem aos parâmetros de consulta especificados na solicitação de API. Por padrão, um conjunto de resultados da pesquisa identifica recursos video, channel e playlist correspondentes, mas você também pode configurar consultas para recuperar somente um tipo específico de recurso.

Impacto na cota:100 chamadas por dia. Uma chamada para esse método tem um custo de cota de 1 unidade no bucket de cota de consultas de pesquisa.

Casos de uso comuns

Solicitação

Solicitação HTTP

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

Parâmetros

A tabela a seguir lista os parâmetros compatíveis com essa consulta. Todos os parâmetros listados são os parâmetros de consulta.

Parâmetros
Parâmetros obrigatórios
part string
O parâmetro part especifica uma lista separada por vírgulas de uma ou mais propriedades de recursos search que a resposta da API vai incluir. Defina o valor do parâmetro como snippet.
Filtros (especifique 0 ou 1 dos seguintes parâmetros)
forContentOwner boolean
Esse parâmetro só pode ser usado em uma solicitação autorizada e é destinado exclusivamente aos parceiros de conteúdo do YouTube.

O parâmetro forContentOwner restringe a pesquisa para recuperar apenas vídeos que pertencem ao proprietário do conteúdo identificado pelo parâmetro onBehalfOfContentOwner. Se forContentOwner estiver definido como "true", a solicitação também precisará atender a estes requisitos:
  • O parâmetro onBehalfOfContentOwner é obrigatório.
  • O usuário que autoriza a solicitação precisa usar uma conta vinculada ao proprietário do conteúdo especificado.
  • O valor de parâmetro type precisa ser definido como video.
  • Nenhum dos seguintes parâmetros pode ser definido: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
forDeveloper boolean
Esse parâmetro só pode ser usado em uma solicitação autorizada. O parâmetro forDeveloper restringe a pesquisa para recuperar apenas vídeos enviados pelo aplicativo ou site do desenvolvedor. O servidor de API usa as credenciais de autorização da solicitação para identificar o desenvolvedor. O parâmetro forDeveloper pode ser usado com parâmetros de pesquisa opcionais, como q.

Nesse recurso, cada vídeo enviado é automaticamente marcado com o número do projeto associado ao aplicativo do desenvolvedor no Google Developers Console.

Quando uma solicitação de pesquisa define o parâmetro forDeveloper como true, o servidor de API usa as credenciais de autorização da solicitação para identificar o desenvolvedor. Portanto, um desenvolvedor pode restringir os resultados aos vídeos enviados pelo próprio app ou site, mas não aos vídeos enviados por outros apps ou sites.
forMine boolean
Esse parâmetro só pode ser usado em uma solicitação autorizada. O parâmetro forMine restringe a pesquisa para recuperar apenas os vídeos do usuário autenticado. Se você definir esse parâmetro como true, o valor do parâmetro type também precisará ser definido como video. Além disso, nenhum dos seguintes parâmetros pode ser definido na mesma solicitação: videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoPaidProductPlacement, videoSyndicated, videoType.
Parâmetros opcionais
channelId string
O parâmetro channelId indica que a resposta da API deve conter apenas recursos criados pelo canal.

Observação:os resultados da pesquisa são limitados a um máximo de 500 vídeos se a solicitação especificar um valor para o parâmetro channelId e definir o valor de parâmetro do parâmetro type como video, mas não definir um dos filtros forContentOwner, forDeveloper ou forMine.
channelType string
O parâmetro channelType permite restringir uma pesquisa a um tipo específico de canal.

Os valores aceitáveis são:
  • any – Retorna todos os canais.
  • show: recupera apenas programas.
eventType string
O parâmetro eventType restringe uma pesquisa a eventos de transmissão. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • completed: inclua apenas transmissões concluídas.
  • live: inclui apenas transmissões ativas.
  • upcoming: inclui apenas as transmissões futuras.
location string
O parâmetro location, em conjunto com o parâmetro locationRadius, define uma área geográfica circular e também restringe uma pesquisa a vídeos que especificam, nos metadados, uma localização geográfica que se enquadra nessa área. O valor do parâmetro é uma string que especifica as coordenadas de latitude/longitude, por exemplo, (37.42307,-122.08427).

  • O valor do parâmetro location identifica o ponto no centro da área.
  • O parâmetro locationRadius especifica a distância máxima que o local associado a um vídeo pode estar desse ponto para que o vídeo ainda seja incluído nos resultados da pesquisa.
A API retorna um erro se a solicitação especificar um valor para o parâmetro location, mas não para o parâmetro locationRadius.

Observação:se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.
locationRadius string
O parâmetro locationRadius, em conjunto com o parâmetro location, define uma área geográfica circular.

O valor do parâmetro precisa ser um número de ponto flutuante seguido por uma unidade de medida. As unidades de medida válidas são m, km, ft e mi. Por exemplo, os valores de parâmetro válidos incluem 1500m, 5km, 10000ft e 0.75mi. A API não aceita valores de parâmetro locationRadius maiores que 1.000 quilômetros.

Observação:consulte a definição do parâmetro location para mais informações.
maxResults unsigned integer
O parâmetro maxResults especifica o número máximo de itens que devem ser retornados no conjunto de resultados. Os valores aceitáveis são de 0 a 50, incluindo esses dois valores. O valor padrão é 5.

onBehalfOfContentOwner string
Esse parâmetro só pode ser usado em uma solicitação autorizada. Observação:esse parâmetro é destinado exclusivamente a parceiros de conteúdo do YouTube.

O parâmetro onBehalfOfContentOwner indica que as credenciais de autorização da solicitação identificam um usuário do CMS do YouTube que está agindo em nome do proprietário do conteúdo especificado no valor do parâmetro. Este parâmetro destina-se a parceiros de conteúdo do YouTube que possuem e gerenciam vários canais do YouTube diferentes. Ele permite que os proprietários de conteúdo autentiquem uma vez e tenham acesso a todos os dados de seu canal e de seus vídeos sem ter que fornecer credenciais de autenticação para cada canal. A conta do CMS com a qual o usuário autentica deve estar vinculada ao proprietário do conteúdo do YouTube especificado.
order string
O parâmetro order especifica o método que será usado para ordenar os recursos na resposta da API. O valor padrão é relevance.

Os valores aceitáveis são:
  • date: os recursos são classificados em ordem cronológica inversa com base na data de criação. Observação:como isso depende do índice da Pesquisa, pode haver atrasos na indexação de novos conteúdos ou conjuntos de resultados incompletos. Para recuperar de forma confiável os vídeos enviados mais recentemente de um canal, não use search.list. Em vez disso, use o método playlistItems.list para buscar a playlist de envios do canal.
  • rating: os recursos são classificados da maior para a menor nota. Observação:essa classificação é calculada usando uma pontuação algorítmica interna e não é estritamente equivalente a uma contagem decrescente de marcações "Gostei".
  • relevance: os recursos são classificados com base na relevância para a consulta de pesquisa. Este é o valor padrão para este parâmetro.
  • title: os recursos são classificados em ordem alfabética por título.
  • videoCount: os canais são classificados em ordem decrescente de acordo com o número de vídeos enviados.
  • viewCount: os recursos são classificados do maior para o menor número de visualizações. Para transmissões ao vivo, os vídeos são classificados pelo número de espectadores simultâneos enquanto as transmissões estão em andamento.
pageToken string
O parâmetro pageToken identifica uma página específica no conjunto de resultados que precisa ser retornada. Em uma resposta da API, as propriedades nextPageToken e prevPageToken identificam outras páginas que podem ser recuperadas.
publishedAfter datetime
O parâmetro publishedAfter indica que a resposta da API deve conter apenas recursos criados no horário especificado ou depois dele. O valor está no formato RFC 3339 de dia/hora (1970-01-01T00:00:00Z).
publishedBefore datetime
O parâmetro publishedBefore indica que a resposta da API só deve conter recursos criados antes ou no horário especificado. O valor está no formato RFC 3339 de dia/hora (1970-01-01T00:00:00Z).
q string
O parâmetro q especifica o termo de consulta a ser pesquisado.

Sua solicitação também pode usar os operadores booleanos NOT (-) e OR (|) para excluir vídeos ou encontrar vídeos associados a um de vários termos de pesquisa. Por exemplo, para pesquisar vídeos que correspondam a "boating" ou "sailing", defina o valor do parâmetro q como boating|sailing. Da mesma forma, para pesquisar vídeos que correspondam a "boating" ou "sailing", mas não a "fishing", defina o valor do parâmetro q como boating|sailing -fishing. O caractere de barra vertical precisa ter um escape de URL quando é enviado na solicitação de API. O valor com escape de URL para o caractere de barra vertical é %7C.
regionCode string
O parâmetro regionCode instrui a API a retornar resultados da pesquisa de vídeos que podem ser assistidos no país especificado. O valor de parâmetro é um código do país ISO 3166-1 alfa-2.
relevanceLanguage string
O parâmetro relevanceLanguage instrui a API a retornar os resultados da pesquisa mais relevantes para o idioma especificado. O valor do parâmetro geralmente é um código de idioma de duas letras ISO 639-1. No entanto, use os valores zh-Hans para chinês simplificado e zh-Hant para chinês tradicional. Os resultados em outros idiomas ainda vão aparecer se forem muito relevantes para o termo da consulta de pesquisa.
safeSearch string
O parâmetro safeSearch indica se os resultados da pesquisa devem incluir conteúdo restrito e padrão.

Os valores aceitáveis são:
  • moderate: o YouTube vai filtrar alguns conteúdos dos resultados da pesquisa e, no mínimo, vai filtrar o conteúdo restrito na sua região. Com base no conteúdo, os resultados da pesquisa poderão ser removidos ou rebaixados. Esse é o valor de parâmetro padrão.
  • none: o YouTube não vai filtrar o conjunto de resultados da pesquisa.
  • strict: o YouTube vai tentar excluir todo o conteúdo restrito do conjunto de resultados da pesquisa. Com base no conteúdo, os resultados da pesquisa poderão ser removidos ou rebaixados.
topicId string
O parâmetro topicId indica que a resposta da API só deve conter recursos associados ao tópico especificado. O valor identifica um ID de tópico do Freebase.

Importante:devido à descontinuação do Freebase e da API Freebase, o parâmetro topicId começou a funcionar de maneira diferente em 27 de fevereiro de 2017. Nessa época, o YouTube começou a oferecer suporte a um pequeno conjunto de IDs de tópicos selecionados, e você só pode usar esse conjunto menor de IDs como valores para esse parâmetro.

type string
O parâmetro type restringe uma consulta de pesquisa para recuperar apenas um tipo específico de recurso. O valor é uma lista separada por vírgulas dos tipos de recursos. O valor padrão é video,channel,playlist.

Os valores aceitáveis são:
  • channel
  • playlist
  • video
videoCaption string
O parâmetro videoCaption indica se a API deve filtrar os resultados da pesquisa de vídeos com base na presença de legendas. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • any: não filtre os resultados com base na disponibilidade de legendas.
  • closedCaption: inclua apenas vídeos que tenham legendas.
  • none: inclui apenas vídeos que não têm legendas.
videoCategoryId string
O parâmetro videoCategoryId filtra os resultados da pesquisa de vídeos com base na categoria. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.
videoDefinition string
O parâmetro videoDefinition permite restringir uma pesquisa para incluir apenas vídeos em alta definição (HD) ou definição padrão (SD). Vídeos em HD estão disponíveis para reprodução com, pelo menos, 720 p, embora resoluções mais altas, como 1.080 p, também estejam disponíveis. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitos são:
  • any: retorna todos os vídeos, independentemente da resolução.
  • high: recupera apenas vídeos em HD.
  • standard: recupera apenas vídeos em definição padrão.
videoDimension string
O parâmetro videoDimension permite restringir uma pesquisa para recuperar apenas vídeos 2D ou 3D. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitos são:
  • 2d: restringe os resultados da pesquisa para excluir vídeos em 3D.
  • 3d: restringe os resultados da pesquisa para incluir apenas vídeos em 3D.
  • any: inclui vídeos em 3D e não 3D nos resultados retornados. Esse é o valor padrão.
videoDuration string
O parâmetro videoDuration filtra os resultados da pesquisa de vídeos com base na duração. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitos são:
  • any: não filtra os resultados da pesquisa de vídeo com base na duração. Esse é o valor padrão.
  • long – Inclua apenas vídeos com mais de 20 minutos.
  • medium: inclua apenas vídeos com duração entre 4 e 20 minutos (inclusive).
  • short: inclua apenas vídeos com menos de quatro minutos.
videoEmbeddable string
O parâmetro videoEmbeddable permite restringir uma pesquisa apenas a vídeos que podem ser incorporados em uma página da Web. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • any: retorna todos os vídeos, incorporáveis ou não.
  • true: recupera apenas vídeos incorporáveis.
videoLicense string
O parâmetro videoLicense filtra os resultados da pesquisa para incluir apenas vídeos com uma licença específica. O YouTube permite que os usuários que fazem upload anexem a licença Creative Commons ou a licença padrão do YouTube a cada um de seus vídeos. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • any: retorna todos os vídeos, independentemente da licença, que correspondem aos parâmetros de consulta.
  • creativeCommon – Retorna apenas vídeos com uma licença Creative Commons. Os usuários podem reutilizar os vídeos com essa licença em outros vídeos que eles criaram. Saiba mais.
  • youtube: retorna apenas vídeos com a licença padrão do YouTube.
videoPaidProductPlacement string
O parâmetro videoPaidProductPlacement filtra os resultados da pesquisa para incluir apenas vídeos que o criador de conteúdo indicou ter uma promoção paga. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • any: retorna todos os vídeos, independentemente de conterem promoções pagas.
  • true: recupera apenas vídeos com promoções pagas.
videoSyndicated string
O parâmetro videoSyndicated permite restringir uma pesquisa apenas a vídeos que podem ser reproduzidos fora do youtube.com. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • any: retorna todos os vídeos, distribuídos ou não.
  • true: recupera apenas vídeos distribuídos.
videoType string
O parâmetro videoType permite restringir uma pesquisa a um tipo específico de vídeo. Se você especificar um valor para esse parâmetro, também precisará definir o valor do parâmetro type como video.

Os valores aceitáveis são:
  • any: retorna todos os vídeos.
  • episode – Recupera apenas episódios de programas.
  • movie: recupera apenas filmes.

Corpo da solicitação

Não forneça um corpo de solicitação ao chamar este método.

Resposta

Se for bem-sucedido, esse método retornará um corpo de resposta com esta estrutura:

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

Propriedades

A tabela a seguir define as propriedades que aparecem em um resultado da pesquisa:

Propriedades
kind string
Identifica o tipo do recurso da API. O valor será youtube#searchListResponse.
etag etag
A Etag deste recurso.
nextPageToken string
O token que pode ser usado como o valor do parâmetro pageToken para recuperar a próxima página no conjunto de resultados.
prevPageToken string
O token que pode ser usado como o valor do parâmetro pageToken para recuperar a página anterior no conjunto de resultados.
regionCode string
O código da região usado na consulta de pesquisa. O valor da propriedade é um código de país ISO de duas letras que identifica a região. O método i18nRegions.list retorna uma lista de regiões com disponibilidade. O valor padrão é US. Se uma região não compatível for especificada, o YouTube ainda poderá selecionar outra região, em vez do valor padrão, para processar a consulta.
pageInfo object
O objeto pageInfo encapsula as informações de paginação do conjunto de resultados.
pageInfo.totalResults integer
O número total de resultados no conjunto de resultados.O valor é uma aproximação e pode não representar um valor exato. Além disso, o valor máximo é 1.000.000.

Não use esse valor para criar links de paginação. Em vez disso, use os valores das propriedades nextPageToken e prevPageToken para determinar se os links de paginação devem ser mostrados.
pageInfo.resultsPerPage integer
O número de resultados incluídos na resposta da API.
items[] list
Uma lista de resultados que correspondem aos critérios de pesquisa.

Exemplos

Observação:os exemplos de código a seguir podem não representar todas as linguagens de programação compatíveis. Consulte a documentação das bibliotecas de cliente para ver uma lista de linguagens compatíveis.

Apps Script

Essa função pesquisa vídeos relacionados à palavra-chave "dogs". Os IDs do vídeo e títulos dos resultados da pesquisa são registrados no registro do Apps Script.

Este exemplo limita os resultados a 25. Para retornar mais resultados, transmita outros parâmetros, conforme documentado aqui: 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

Este exemplo de código chama o método search.list da API para recuperar os resultados da pesquisa associados a uma palavra-chave específica.

Este exemplo usa a biblioteca de cliente 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

O exemplo de código a seguir chama o método search.list da API para recuperar os resultados da pesquisa associados a uma palavra-chave específica.

Neste exemplo, usamos a biblioteca de 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

Esta amostra chama o método search.list da API para recuperar resultados da pesquisa associados a uma palavra-chave específica.

Neste exemplo, usamos a biblioteca de cliente do 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

Erros

A tabela a seguir identifica as mensagens de erro que a API pode retornar em resposta a uma chamada para esse método. Consulte a documentação mensagem de erro para mais detalhes.

Tipo de erro Detalhe do erro Descrição
badRequest (400) invalidChannelId O parâmetro channelId especificou um ID de canal inválido.
badRequest (400) invalidLocation O valor do parâmetro location e/ou locationRadius foi formatado incorretamente.
badRequest (400) invalidRelevanceLanguage O valor do parâmetro relevanceLanguage foi formatado incorretamente.
badRequest (400) invalidSearchFilter A solicitação contém uma combinação inválida de filtros de pesquisa e/ou restrições. Defina o parâmetro type como video se você definir os parâmetros forContentOwner ou forMine como true. Você também precisa definir o parâmetro type como video se definir um valor para os parâmetros eventType, videoCaption, videoCategoryId, videoDefinition, videoDimension, videoDuration, videoEmbeddable, videoLicense, videoSyndicated ou videoType.

Confira!

Use o APIs Explorer para chamar essa API e conferir a solicitação de API e a resposta.