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

Respuesta rápida

Ves quotaExceeded porque tu proyecto de Google Cloud usó toda su asignación diaria de 10 000 unidades para la YouTube Data API v3, que se restablece a medianoche hora del Pacífico. Las soluciones más rápidas: dejar de usar search.list (100 unidades) donde funcione una búsqueda directa por ID, poner en caché los resultados en lugar de volver a obtenerlos, o cambiar a una API de transcripción que no consuma tu propia cuota de YouTube en absoluto.

Por qué sucede esto

Cada proyecto de Google Cloud recibe por defecto una cuota de la YouTube Data API v3 de 10 000 unidades por día, que se restablece a medianoche hora del Pacífico: no hay transferencia de saldo ni forma de activar un restablecimiento anticipado. La cuota se controla por proyecto, no por clave de API, así que generar una segunda clave del mismo proyecto no te da un segundo grupo de cuota.

Cada llamada a la API cuesta unidades, no solicitudes, y los costos son desiguales. Aquí está el panorama completo de los endpoints que realmente usan los desarrolladores:

LlamadaCosto en cuota
search.list100 unidades
videos.list1 unidad
channels.list1 unidad
playlistItems.list1 unidad
commentThreads.list1 unidad por página
captions.list50 unidades
captions.download200 unidades, requiere OAuth (no autenticación por clave de API)

A 100 unidades por búsqueda, un proyecto puede agotar toda su cuota diaria después de solo 100 llamadas de búsqueda, antes de descargar un solo subtítulo. Esta es la forma más común en que los proyectos pequeños chocan con el límite: no hicieron 10 000 solicitudes, hicieron unos cientos de solicitudes caras. En cambio, videos.list, channels.list y playlistItems.list son baratas, a 1 unidad cada una: si ya conoces el ID de un video, canal o lista de reproducción, esas llamadas apenas afectan el presupuesto diario.

Cómo revisar tu uso actual de cuota

  1. Abre Google Cloud Console para el proyecto vinculado a tu clave de API.
  2. Ve a APIs & Services → YouTube Data API v3 → Quotas & System Limits.
  3. Esto muestra tu uso actual frente a las consultas por día y los límites por minuto, actualizado con un pequeño retraso en lugar de en tiempo real.

Si ya estás cerca del límite antes de haber hecho 10 000 solicitudes, esta vista te confirma que es el problema de las llamadas caras mencionado arriba, no un error.

quotaExceeded frente a rateLimitExceeded

Ambos devuelven un 403, y en conversaciones informales suelen agruparse como "errores de cuota", pero son problemas distintos con soluciones distintas:

  • quotaExceeded (motivo: dailyLimitExceeded) - tu proyecto usó toda su asignación diaria de unidades. Nada lo soluciona salvo esperar el restablecimiento de medianoche hora del Pacífico, reducir el costo por llamada, o conseguir la aprobación de un aumento de cuota.
  • rateLimitExceeded - estás enviando solicitudes demasiado rápido en una ventana corta, independientemente de tu total diario. Es un problema de ritmo, no de presupuesto; consulta nuestra guía de límite de tasa para saber cómo manejarlo correctamente con retroceso.

Cinco formas de solucionarlo

  1. Usa caché de forma agresiva. La cuota se cobra por llamada a la API, no por solicitud de cara al usuario: si vuelves a obtener repetidamente los subtítulos del mismo video, guarda el resultado en caché (incluso una simple caché en memoria con TTL) en lugar de volver a llamar a la API para datos que no cambian minuto a minuto.
  2. Evita search.list cuando funcione una búsqueda directa por ID. Si ya tienes el ID de un video, canal o lista de reproducción, la llamada .list correspondiente cuesta 100 veces menos que una búsqueda.
  3. Agrupa las búsquedas por ID. videos.list acepta hasta 50 IDs separados por comas por llamada por el mismo costo de 1 unidad que un solo ID: obtener 50 videos de uno en uno en lugar de en lote es 50 veces más caro sin ningún motivo.
  4. Solicita un aumento de cuota una vez que tengas uso de producción real que lo justifique, mediante el formulario de auditoría y extensión de cuota de YouTube API Services enlazado desde la página de cuota de Cloud Console. Espera una revisión manual, no una aprobación instantánea.
  5. Usa una API de transcripción que no consuma tu propia cuota de YouTube. La API de GetYouTubeTranscript obtiene transcripciones contra su propia infraestructura en lugar de actuar como intermediaria de captions.download con tu clave, así que no hay un límite diario de 10 000 unidades que gestionar, solo el límite de tasa de solicitudes propio del plan.

Ejemplo: obtener una transcripción sin tocar la cuota de 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"])

Esto cuesta 1 crédito en tu plan de GetYouTubeTranscript, no unidades de la cuota de la YouTube Data API de tu proyecto de Google Cloud. Obtén 100 créditos gratis, sin tarjeta requerida, desde el panel, o consulta la documentación completa de la API.

Una nota sobre las soluciones alternativas

Rotar IPs, crear muchos proyectos de Google Cloud, o hacer scraping directo de las páginas de YouTube para evitar la cuota conllevan un riesgo real: las dos primeras arriesgan violar los Términos de servicio de YouTube API Services, y el scraping no oficial es frágil ante cambios de diseño. Una API de transcripción dedicada absorbe ese riesgo operativo por ti, en lugar de que lo cargues tú mismo.

Preguntas frecuentes sobre la cuota de la API de YouTube

Q01

¿Qué significa "The request cannot be completed because you have exceeded your quota"?

Significa que tu proyecto de Google Cloud agotó las unidades de cuota asignadas de la YouTube Data API v3 para el día actual. Google restablece la cuota a medianoche hora del Pacífico, y la asignación gratuita por defecto es de 10 000 unidades/día, controlada por proyecto (no por clave de API).

Q02

¿Cuánta cuota cuesta realmente obtener una transcripción?

La YouTube Data API en sí no tiene un endpoint directo de "obtener transcripción": la llamada captions.list cuesta 50 unidades solo para listar las pistas de subtítulos disponibles, y captions.download requiere OAuth (no solo una clave de API) y cuesta 200 unidades. Una llamada search.list, a menudo usada primero para encontrar videos, cuesta 100 unidades por sí sola, así que un puñado de búsquedas más consultas de subtítulos puede agotar rápidamente un presupuesto diario de 10 000 unidades.

Q03

¿Cuál es la diferencia entre quotaExceeded y rateLimitExceeded?

quotaExceeded (mostrado como motivo dailyLimitExceeded en el cuerpo del error) significa que has usado toda tu asignación diaria de unidades y debes esperar el restablecimiento de medianoche hora del Pacífico. rateLimitExceeded significa que estás enviando solicitudes demasiado rápido dentro de una ventana corta, independientemente de tu total diario; consulta nuestra guía de límite de tasa para conocer la distinción en detalle.

Q04

¿Puedo usar varias claves de API para obtener más cuota?

No: la cuota se controla por proyecto de Google Cloud, no por clave de API. Varias claves generadas desde el mismo proyecto extraen todas del mismo grupo diario de 10 000 unidades. Crear proyectos separados para multiplicar la cuota es técnicamente posible, pero arriesga violar los Términos de servicio de YouTube API Services, que prohíben eludir los límites de cuota.

Q05

¿Puedo simplemente solicitar un aumento de cuota a Google?

Sí, mediante el formulario de auditoría y extensión de cuota de YouTube API Services enlazado desde la página de cuota de Cloud Console, pero la aprobación no está garantizada ni es inmediata: requiere justificar el uso de producción con detalles reales, y Google revisa las solicitudes manualmente. No hay una forma de autoservicio para simplemente pagar por más cuota.

Q06

¿La cuota gratuita de 10 000 unidades tiene algún costo?

No: es la asignación gratuita por defecto que recibe todo proyecto de Google Cloud que habilita la YouTube Data API v3. No necesitas una cuenta de facturación vinculada para usarla, aunque Google puede pedirte que habilites la facturación al solicitar un aumento.

Q07

¿La API de GetYouTubeTranscript usa mi propia cuota de la API de YouTube?

No. No actúa como intermediaria de la Data API de YouTube con tu clave: la extracción de transcripciones se ejecuta contra nuestra propia infraestructura, así que no hay cuota de captions.list/download que gestionar de tu lado. Solo estás limitado por nuestros propios límites de tasa publicados (60 solicitudes/min gratis, hasta 300 solicitudes/min en el plan anual).

Relacionado