googleapis / googleapis/google-api-python-client
YouTube Data API videos.insert returns hidden “Video Uploads per day” 429 despite quota headroom
Ninguém assumiu esta issue ainda.
- 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.insertcosts 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.comdoes not expose aVideo Uploads per daymetric- 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:
- whether
Video Uploads per dayis a new or newly enforced quota; - where this quota can be viewed, monitored, and increased;
- whether the current behavior is intentional;
- 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
- YouTube quota docs: https://developers.google.com/youtube/v3/determine_quota_cost
videos.insertreference: https://developers.google.com/youtube/v3/docs/videos/insert- YouTube upload guide: https://developers.google.com/youtube/v3/guides/uploading_a_video
- Related Reddit thread: https://old.reddit.com/r/googlecloud/comments/1tm1scx/429_quota_exceeded/
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- 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