googleapis / googleapis/google-api-python-client

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

未關閉
#2,753 0 則留言 5 個 reaction 已指派 0 人 在 GitHub 檢視
priority: p2 type: bug
主要語言
Python
星號
8.9k
分支
2.6k
平均合併
2 天 28 分鐘
30 天內合併 PR
17

描述

## 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:

```json
{
"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

```python
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

* YouTube quota docs: https://developers.google.com/youtube/v3/determine_quota_cost
* `videos.insert` reference: 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/

貢獻指南

開啟貢獻指南

研究方向

從最小的 `youtube.videos().insert(...).next_chunk()` 上傳流程開始,並將其 429 回應與文件中說明的配額來源以及 issue 中列出的 Cloud Quotas 命令進行比較。完成的要求是確認服務端的配額行為,並確定用戶端、文件或配額可見性方面一項可執行的變更;未指定任何儲存庫檔案或測試。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
api
Issue 類型
缺陷
難度
5/5
預估耗時
一週以上
活躍度
冷清
描述清晰度
需要釐清
新手友好度
25/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。