Repository navigation
YouTube API Quota
YouTube does not sell extra Data API quota. The default is small. Long streams can hit it. More quota requires a YouTube API Services compliance audit, not a Cloud “upgrade plan.”
Official docs:
After you enable YouTube Data API v3, Google’s default (subject to change) is:
| Bucket | Default |
|---|---|
| Most endpoints (including live chat) | 10,000 units per day |
search.list |
100 calls per day (separate) |
videos.insert |
100 calls per day (separate; RICS does not upload videos) |
Daily quotas reset at midnight Pacific Time (PT).
Every request costs at least 1 unit, including failed ones. Live chat list polls are the main cost for RICS. Writes (if send/OAuth is ever enabled) cost much more.
Check real usage in Google Cloud: Quotas → filter YouTube Data API v3.
The bar on the RICS YouTube tab is a local estimate (it assumes a 10,000 unit day and counts its own poll costs). Trust the Cloud Console if the two disagree.
RICS slows polling when the in-game estimate is high (~5s delay above 80%) and stops polling near 99% so the key does not sit in a 403 loop.
Typical connect:
- Resolve channel — free if you pasted a
UC…ID. -
search.listfor the current live video — uses the 100/day search bucket. Reconnecting often burns this fast. -
videos.listforliveStreamingDetails/ chat ID — cheap. - Loop:
liveChatMessages.listevery ~2–5 seconds while connected.
Use your Channel ID (UC…) in RICS. Handles and display names can trigger extra search.list calls.
Stay connected for the stream instead of Connect / Disconnect every few minutes.
You must be live. Connecting offline still spends quota on failed lookups.
Apply if:
- You stream several hours and chat polling dies with
quotaExceeded - Cloud Console shows the 10,000 unit (or search) cap at 100% before you are done
- You run YouTube + long sessions every day on the same project
Do not apply because the in-game bar looks “high” after a short test. Confirm in Cloud Console first.
You cannot raise this with a paid Google Cloud billing account. Billing does not buy YouTube Data API units.
- Project in Google Cloud Console with YouTube Data API v3 enabled.
- API key restricted to that API (setup guide).
- Note the Project number and Project ID (Project settings / Dashboard).
- Have a privacy policy URL if you have a website or GitHub Pages. Google often asks how you handle user data. For a personal RimWorld client that only reads your live chat, say that clearly: no storing other people’s chat in a public database, key stays on your PC.
Read YouTube API Services Terms and the Developer Policies Guide before you submit. The audit is a compliance check, not a slider.
Open the YouTube API Services – Audit and Quota Extension Form.
Use that same form for:
- First audit + first quota extension
- Another extension if you already passed an audit in the last 12 months
- Periodic audit if YouTube emails you
Other official forms:
- Failed audit: Appeals
- Company sale / project ownership change: Change of Control
A YouTube API Services person emails you after review. That can take days to weeks. Follow-up questions are normal.
Fill the form truthfully. This is a template for a personal project that only reads your live chat for the RICS RimWorld mod. Change anything that is not true for you.
| Topic | Suggested content |
|---|---|
| What the app is | RimWorld mod RICS ([CAP] Rimworld Interactive Chat Services). Desktop game client. Viewers type commands in my YouTube Live chat; the mod reads them and runs in-game actions. |
| Who uses the API | Only me (the streamer). Each streamer is supposed to create their own Cloud project. This project is not a shared backend for other channels. |
| APIs / methods | YouTube Data API v3: search.list (find current live video), videos.list (live chat id), channels.list (key check / channel resolve), liveChatMessages.list (poll chat). No uploads. No comment scraping of other channels. |
| Why default 10,000 is not enough | Live chat is polled for the whole stream. A long stream can exceed 10,000 units. I need enough units to stay connected for a typical stream of X hours. |
| How much to ask for | Ask for a round number you can justify, e.g. 50,000 or 100,000 units/day, based on hours live × poll rate. Do not ask for millions with no math. |
| User data | Chat is processed on my PC to run game commands. I do not sell YouTube data. I do not build a public YouTube search engine. |
| API client | Installed RimWorld mod, not a website. API key restricted to YouTube Data API v3. |
| Links to project / source code | If the form asks for links, paste the GitHub repo. If it allows a second (or “source code”) link, add YouTubeChatService.cs — that is where YouTube messages are read, sorted, and handed to the command processor. |
| Screenshots | RICS YouTube tab, a live stream with chat commands, Cloud Console quotas page. |
If the form asks for project / website / source-code links, use these:
Open source helps the audit: reviewers can see RICS only polls your live chat and forwards lines to the in-game command processor.
-
GitHub repository (always):
https://github.com/ekudram/-cap-RimworldInteractiveChatServices -
YouTubeChatService.cs(if you can add another link):
https://github.com/ekudram/-cap-RimworldInteractiveChatServices/blob/master/%5BCAP%5D%20Chat%20Interactive/Services/YouTubeChatService.csThis file is the main YouTube integration: it finds the live chat, polls messages, and sends them into RICS’s command processor.
Optional extra: setup wiki — https://github.com/ekudram/-cap-RimworldInteractiveChatServices/wiki/YouTube-API-Setup
Do not claim RICS is a Google-verified public API product. Do not paste other people’s keys. Do not say you need search.list at huge volume if you already use a UC Channel ID.
- Watch the Google account inbox (and spam) for YouTube API Services mail.
- Answer follow-ups with the same story as the form.
- If approved, the project quota in Cloud Console goes up. You do not paste a new key.
- If denied, use the Appeals form only if you can fix what they cited.
YouTube also runs periodic audits. Keep using the API the way you described.
Do this even if you apply:
- Always use Channel ID
UC…in RICS. - Connect once when you go live; leave it connected.
- Do not leave RICS polling overnight after the stream.
- One Cloud project for RICS — do not enable random extra APIs on the same key.
- Watch Cloud Console during a full stream so your extension request has real numbers.
Creating extra Google projects to dodge the cap can violate the API Terms. Prefer one honest audit.
| In-game | Meaning |
|---|---|
| Quota bar green | Estimate under 80% |
| Yellow / “high usage” | Estimate ≥ 80% — polling slows |
| Red / “critically low” | Estimate ≥ 95% |
| Chat disconnect, quota exhausted | Estimate ~99% or Google returned 403 quotaExceeded
|
Wait for the Pacific midnight reset, or use an approved higher allocation.