YouTube API Quota Exceeded: Causes and Fixes
Why YouTube Data API requests fail with quotaExceeded, what the daily 10,000-unit quota actually costs per call, how to check and raise it, and how to avoid hitting it - including using a transcript API that doesn't consume your quota.
00:09:00 · SEP 13, 2026
Resposta rápida
quotaExceeded porque seu projeto do Google Cloud usou toda a sua alocação diária de 10.000 unidades para a YouTube Data API v3, que reinicia à meia-noite no horário do Pacífico. As correções mais rápidas: parar de usar search.list (100 unidades) onde uma busca direta por ID funciona, armazenar resultados em cache em vez de buscá-los de novo, ou trocar para uma API de transcrição que não passa pela sua própria cota do YouTube.Por que isso acontece
Todo projeto do Google Cloud recebe uma cota padrão de 10.000 unidades por dia para a YouTube Data API v3, reiniciada à meia-noite no horário do Pacífico - não há acúmulo de saldo nem forma de disparar um reset antecipado. A cota é rastreada por projeto, não por chave de API, então gerar uma segunda chave a partir do mesmo projeto não te dá um segundo pool.
Cada chamada de API custa unidades, não requisições - e os custos são desiguais. Aqui está o panorama completo entre os endpoints que os desenvolvedores realmente usam:
| Chamada | Custo em cota |
|---|---|
search.list | 100 unidades |
videos.list | 1 unidade |
channels.list | 1 unidade |
playlistItems.list | 1 unidade |
commentThreads.list | 1 unidade por página |
captions.list | 50 unidades |
captions.download | 200 unidades, requer OAuth (não autenticação por chave de API) |
A 100 unidades por busca, um projeto pode esgotar toda a sua cota diária depois de apenas 100 chamadas de busca - antes de baixar uma única legenda. Esta é a forma mais comum de projetos pequenos atingirem o limite: eles não fizeram 10.000 requisições, fizeram algumas centenas de chamadas caras. Em contrapartida, videos.list, channels.list, e playlistItems.list são baratas, a 1 unidade cada - se você já sabe o ID de um vídeo, canal ou playlist, essas chamadas mal arranham o orçamento diário.
Como verificar seu uso atual de cota
- Abra o Google Cloud Console para o projeto vinculado à sua chave de API.
- Vá em APIs & Services → YouTube Data API v3 → Quotas & System Limits.
- Isso mostra seu uso atual em relação a Queries per day e aos limites por minuto, atualizado com um pequeno atraso em vez de em tempo real.
Se você já está perto do teto antes de ter feito 10.000 requisições, essa visualização é como você confirma que é o problema das chamadas caras acima, e não um bug.
quotaExceeded vs. rateLimitExceeded
Ambos retornam um 403, e ambos são agrupados casualmente como "erros de cota", mas são problemas diferentes com soluções diferentes:
- quotaExceeded (motivo:
dailyLimitExceeded) - seu projeto usou toda a sua alocação diária de unidades. Nada resolve isso, exceto esperar o reset à meia-noite no horário do Pacífico, reduzir o custo por chamada, ou conseguir aprovação para um aumento de cota. - rateLimitExceeded - você está enviando requisições rápido demais em uma janela curta, independente do seu total diário. Isso é um problema de ritmo, não de orçamento - veja nosso guia de limite de taxa para tratar isso corretamente com backoff.
Cinco formas de corrigir isso
- Armazene em cache agressivamente. A cota é cobrada por chamada de API, não por requisição do usuário final - se você buscar de novo as legendas do mesmo vídeo repetidamente, armazene o resultado em cache (mesmo um simples cache TTL em memória) em vez de chamar a API de novo para dados que não mudam de minuto a minuto.
- Evite
search.listonde uma busca direta por ID funciona. Se você já tem um ID de vídeo, canal ou playlist, a chamada.listcorrespondente custa 100 vezes menos do que uma busca. - Agrupe buscas por ID.
videos.listaceita até 50 IDs separados por vírgula por chamada, pelo mesmo custo de 1 unidade de um único ID - buscar 50 vídeos um por um em vez de agrupados é 50 vezes mais caro sem motivo. - Solicite um aumento de cota assim que tiver uso real em produção para justificá-lo, através do formulário YouTube API Services Audit and Quota Extension, disponível na página de cota do Cloud Console. Espere uma revisão manual, não uma aprovação instantânea.
- Use uma API de transcrição que não passe pela sua própria cota do YouTube. A API do GetYouTubeTranscript busca transcrições contra sua própria infraestrutura em vez de fazer proxy de
captions.downloadcom sua chave, então não há um teto diário de 10.000 unidades para gerenciar - apenas o limite de taxa de requisições do próprio plano.
Exemplo: buscando uma transcrição sem tocar na cota do YouTube
cURL:
curl "https://getyoutubetranscript.com/api/v1/transcript?v=dQw4w9WgXcQ" \
-H "Authorization: Bearer sk_live_..."Node.js:
const res = await fetch(
"https://getyoutubetranscript.com/api/v1/transcript?v=dQw4w9WgXcQ",
{ headers: { Authorization: `Bearer ${process.env.GETYOUTUBETRANSCRIPT_API_KEY}` } }
);
const { data } = await res.json();
console.log(data.transcript);Python:
import os, requests
res = requests.get(
"https://getyoutubetranscript.com/api/v1/transcript",
params={"v": "dQw4w9WgXcQ"},
headers={"Authorization": f"Bearer {os.environ['GETYOUTUBETRANSCRIPT_API_KEY']}"},
)
print(res.json()["data"]["transcript"])Isso custa 1 crédito contra seu plano do GetYouTubeTranscript, não unidades contra a cota da YouTube Data API do seu projeto no Google Cloud. Obtenha 100 créditos grátis, sem cartão necessário, no painel, ou veja a documentação completa da API.
Uma observação sobre gambiarras
Perguntas frequentes sobre a cota da API do YouTube
O que significa "The request cannot be completed because you have exceeded your quota"?
Significa que seu projeto do Google Cloud esgotou as unidades de cota alocadas para a YouTube Data API v3 no dia atual. O Google reinicia a cota à meia-noite no horário do Pacífico, e a alocação gratuita padrão é de 10.000 unidades/dia, rastreada por projeto (não por chave de API).
Quanto de cota realmente custa buscar uma transcrição?
A YouTube Data API em si não tem um endpoint direto de "obter transcrição" - a chamada captions.list custa 50 unidades apenas para listar as faixas de legenda disponíveis, e captions.download exige OAuth (não apenas uma chave de API) e custa 200 unidades. Uma chamada search.list, frequentemente usada para encontrar vídeos primeiro, custa 100 unidades sozinha - então algumas buscas mais consultas de legenda podem consumir rapidamente um orçamento diário de 10.000 unidades.
Qual é a diferença entre quotaExceeded e rateLimitExceeded?
quotaExceeded (exibido como motivo dailyLimitExceeded no corpo do erro) significa que você usou toda a sua alocação diária de unidades e precisa esperar pelo reset à meia-noite no horário do Pacífico. rateLimitExceeded significa que você está enviando requisições rápido demais em uma janela curta, independente do seu total diário - veja nosso guia de limite de taxa para a distinção em detalhe.
Posso usar várias chaves de API para ter mais cota?
Não - a cota é rastreada por projeto do Google Cloud, não por chave de API. Várias chaves geradas a partir do mesmo projeto usam o mesmo pool diário de 10.000 unidades. Criar projetos separados para multiplicar a cota é tecnicamente possível, mas arrisca violar os Termos de Serviço da YouTube API Services, que proíbem contornar limites de cota.
Posso simplesmente solicitar um aumento de cota ao Google?
Sim, através do formulário YouTube API Services Audit and Quota Extension, disponível na página de cota do Cloud Console, mas a aprovação não é garantida nem imediata - exige justificar o uso em produção com detalhes reais de uso, e o Google revisa as solicitações manualmente. Não existe forma self-service de simplesmente pagar por mais cota.
A cota gratuita de 10.000 unidades tem algum custo?
Não - é a alocação gratuita padrão dada a todo projeto do Google Cloud que ativa a YouTube Data API v3. Você não precisa ter uma conta de faturamento vinculada para usá-la, embora o Google possa solicitar que você ative o faturamento ao pedir um aumento.
A API do GetYouTubeTranscript usa minha própria cota da API do YouTube?
Não. Ela não faz proxy da Data API do YouTube com sua chave - a extração de transcrição roda contra nossa própria infraestrutura, então não há cota de captions.list/download para gerenciar do seu lado. Você está limitado apenas pelos nossos próprios limites de taxa publicados (60 req/min no gratuito, até 300 req/min no plano anual).
Relacionados
- YouTube Transcript API Rate Limit: What It Is and How to Handle 429s
- YouTube Transcript MCP Server: Setup Guide for Claude and Other AI Tools
- YouTube Transcripts in n8n: HTTP Request Workflow Guide
- GetYouTubeTranscript vs TranscriptAPI
- GetYouTubeTranscript vs youtubetotranscript.com
- GetYouTubeTranscript vs youtube-transcript.io