googleapis / googleapis/google-api-python-client

YouTube Data API videos.insert returns hidden “Video Uploads per day” 429 despite quota headroom

Aberta
#2,753 0 comentários 5 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

priority: p2 type: bug
Linguagem predominante
Python
Estrelas
8.9k
Forks
2.6k
Merge médio
2d 28min
PRs com merge (30d)
17

Descrição

Summary

Starting around May 24-25, 2026, uploads through the YouTube Data API videos.insert endpoint began failing after a small number of uploads per day with HTTP 429:

{
  "error": {
    "code": 429,
    "message": "Quota exceeded for quota metric 'Video Uploads' and limit 'Video Uploads per day' of service 'youtube.googleapis.com' for consumer 'project_number:REDACTED'.",
    "errors": [
      {
        "message": "Quota exceeded for quota metric 'Video Uploads' and limit 'Video Uploads per day' of service 'youtube.googleapis.com' for consumer 'project_number:REDACTED'.",
        "domain": "global",
        "reason": "rateLimitExceeded"
      }
    ]
  }
}

This appears to be a hidden or newly enforced quota separate from the documented YouTube Data API quota-unit system.

Expected behavior

According to the YouTube Data API quota documentation:

  • Default project quota is 10,000 units/day
  • videos.insert costs 100 units
  • Quota resets at midnight Pacific Time

A default project should therefore support roughly 100 uploads/day, assuming no other significant quota usage.

If there is a separate Video Uploads per day quota, it should be documented and visible in Cloud Console / Cloud Quotas API so developers can monitor it and request increases.

Actual behavior

Uploads fail after roughly 7 uploads/day with:

Quota exceeded for quota metric 'Video Uploads' and limit 'Video Uploads per day'

However:

  • Cloud Console shows YouTube Data API quota usage well below 100%
  • gcloud beta quotas info list --service=youtube.googleapis.com does not expose a Video Uploads per day metric
  • Cloud Quotas API also does not appear to expose this metric
  • Manual uploads through YouTube Studio to the same channel still work

Environment

  • API: YouTube Data API v3
  • Method: videos.insert
  • Library: google-api-python-client
  • Version tested: 2.196.0
  • Upload type: resumable upload
  • Auth scope: https://www.googleapis.com/auth/youtube.upload
  • Project has YouTube Data API enabled
  • OAuth app, project, and channel are unchanged from before the regression

Minimal code shape

media = MediaFileUpload(path, chunksize=-1, resumable=True)

request = youtube.videos().insert(
    part="snippet,status",
    body={
        "snippet": {
            "title": title,
            "description": description,
        },
        "status": {
            "privacyStatus": "private",
        },
    },
    media_body=media,
)

response = None
while response is None:
    status, response = request.next_chunk()

Additional evidence

Multiple developers appear to be reporting the same behavior in the same timeframe: API uploads fail after a small number of videos, while Cloud Console still shows quota headroom and manual YouTube Studio uploads still work.

Related Reddit discussion:

https://old.reddit.com/r/googlecloud/comments/1tm1scx/429_quota_exceeded/

Request

Could you please confirm:

  1. whether Video Uploads per day is a new or newly enforced quota;
  2. where this quota can be viewed, monitored, and increased;
  3. whether the current behavior is intentional;
  4. if intentional, whether the public YouTube Data API quota docs and Cloud Console / Cloud Quotas API can be updated to expose this metric?

I understand this may be a service-side quota issue rather than a google-api-python-client bug, but the client is currently surfacing an undocumented quota error that developers cannot inspect or manage through the usual quota tools.

Sources checked

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo fluxo mínimo de upload youtube.videos().insert(...).next_chunk() e compare sua resposta 429 com as fontes de cota documentadas e os comandos do Cloud Quotas listados na issue. O trabalho estará concluído quando o comportamento da cota no lado do serviço for confirmado e uma alteração acionável no cliente, na documentação ou na visibilidade das cotas for identificada; nenhum arquivo ou teste do repositório é indicado.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
api
Tipo de issue
Bug
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Pouca atividade
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.