1. Início
  2. Documentação
  3. search_videos

search_videos

Encontre vídeos do YouTube por uma consulta de texto. Cada chamada devolve uma página com apenas vídeos, em geral cerca de 20 resultados.

Pesquisar vídeos do YouTube. REST: POST /v1/search

Parâmetros

Envie uma consulta e, se desejar, o idioma e a região dos resultados.

NomeTipoObrigatórioDescrição
querystringSimConsulta com 1 a 200 caracteres depois de remover espaços no início e no fim.
languagestringNãoIdioma dos resultados, usado como hl. Exemplo: pt.
regionstringNãoRegião ISO 3166-1 alpha-2, usada como gl. Exemplo: BR.
cursorstringNãoCursor opaco em base64url recebido em nextCursor. Omita na primeira página.

Exemplos

O exemplo procura uma oficina fictícia do próprio usuário.

TEXT
Encontre a oficina Planilha do zero para pequenos negócios do meu canal.

O assistente chama search_videos com {"query": "Planilha do zero para pequenos negócios Meu canal", "language": "pt", "region": "BR"}.

Resposta

Na API REST, o resultado vem diretamente em JSON com HTTP 200, sem job.

200 OK
{
  "results": [
    {
      "videoId": "MinhaAula_0",
      "url": "https://www.youtube.com/watch?v=MinhaAula_0",
      "title": "Planilha do zero para pequenos negócios",
      "channel": "Meu canal",
      "channelId": "UCa9Rk2pLm7QwX4sTn1vB3cE",
      "durationSeconds": 2520,
      "uploadDate": "2026-10-21",
      "viewCount": 1240,
      "thumbnailUrl": "https://i.ytimg.com/vi/MinhaAula_0/hqdefault.jpg",
      "isLive": false
    }
  ],
  "nextCursor": null
}
CampoDescrição
resultsLista de vídeos. Canais, playlists e outros tipos de resultado não são incluídos. Pode vir vazia ou com menos de 20 vídeos.
results[].videoId, results[].urlID e endereço canônico do vídeo.
results[].title, results[].channel, results[].channelIdTítulo, nome e ID do canal.
results[].durationSecondsDuração em segundos ou null quando indisponível.
results[].uploadDateData ISO quando possível, texto de publicação como há 2 dias, ou null quando indisponível.
results[].viewCountNúmero de visualizações ou null quando indisponível.
results[].thumbnailUrl, results[].isLiveEndereço da miniatura e indicação de transmissão ao vivo.
nextCursorCursor opaco em base64url para a próxima página, ou null quando não houver outra página.

Para continuar, envie nextCursor no campo cursor, mantendo a consulta, o idioma e a região. Não interprete nem altere o cursor. Cada próxima página é uma nova chamada.

Limites

Cada página concluída, mesmo vazia, usa 1 unidade de metadataPerDay, compartilhado com get_video_info e get_video_comments, incluindo POST /v1/info e POST /v1/comments. Não usa a cota de transcrições. Falhas e bloqueios não são cobrados.

LimiteGratuitoStarterPro
Metadados por dia506005.000
Chamadas por minuto, compartilhadas101010

O limite de 10 chamadas por minuto é compartilhado por search_videos, get_video_info, get_video_comments e get_usage, incluindo as rotas REST correspondentes. OAuth e todas as chaves da conta dividem os limites. O contador diário renova à 0h UTC.

Erros

Use o código para escolher o próximo passo.

SituaçãoCódigoHTTPO que fazer
Consulta ou parâmetro inválidoinvalid_request400Conferir os parâmetros
Credencial ausente ou inválidaunauthorized401Conectar a conta ou conferir a chave
Muitas chamadas por minutorate_limited429Aguardar o tempo indicado em Retry-After
Limite diário de metadados atingidometadata_daily_limit429Aguardar até 0h UTC
Serviço temporariamente indisponívelyoutube_blocked, service_unavailable503Tentar mais tarde

Ver planos e cota e todos os códigos de erro.