YouTube Data API 10,000-unit pool: budget checks for a pipeline
Google gives a project 10,000 units a day shared by endpoints other than search.list and videos.insert. Poll Sume for job status instead of spending them.

Google's quota page says endpoints other than search.list and videos.insert share a default of 10,000 units per day. Keep that pool for the calls only YouTube can answer, and learn about render completion from Sume instead: a signed job.completed webhook, or polls of GET /v1/jobs/{id}/status on api.sume.com, spend none of your YouTube units.
Which method costs what is on Google's page: it lists videos.insert at 1 quota point per call, with its own 100-call daily limit.
Where does each check belong?
Route each question to the system that can answer it cheaply.
| Question | Ask | Cost to your YouTube quota |
|---|---|---|
| Is the clip rendered? | Sume webhook or status_url | None |
| Did the upload start? | YouTube response to videos.insert | Its own 100-call bucket |
| Other YouTube reads | Shared 10,000-unit pool | Per Google's cost table |
How do I keep a tally?
Track the units you spend per day and stop at a margin. Look up each method's cost on Google's table. The sample keeps a counter.
class DailyBudget:
def __init__(self, units: int = 10_000, reserve: int = 500):
self.left = units - reserve
def spend(self, cost: int) -> bool:
if cost > self.left:
return False
self.left -= cost
return True
if __name__ == "__main__":
budget = DailyBudget()
print(budget.spend(1), budget.left)What about missed webhooks?
Webhooks can be missed, so keep a slow sweeper that reads Sume status, which is free of YouTube quota, and redeliver with POST /v1/jobs/{job_id}/webhook/redeliver when the job finished but your receiver never saw it. The post on a reconcile sweeper shows the loop.
Sources
Related posts
More in Developers
- YouTube Shorts top out at 1080p: don't render 2160 in Timeline 1.0
YouTube's help page says Shorts can be uploaded at a maximum of 1080p. Timeline 1.0 allows up to 2160 per side, so set 1080x1920 and save render time.
- A zsh function: submit a video prompt, keep your terminal free
A 19-line .zshrc function sends a prompt to Sume Wan 3.0 (2 s, 480p, $0.125), returns at once and saves the MP4 later. Do not name a variable status.
- A/B test two AI video models by API with a stable hash bucket
Split production video jobs between two Sume model ids by hashing a job key, so retries keep the same arm. Python code, a duration table and a 1,000-key check.
- Agent Completions: each call is a new thread, owned by your user
Every Sume Agent Completion starts a fresh thread; you cannot continue one with thread_id or send assistant turns, and runs are user-owned, not team-owned.
Written by Sume