Skip to content
QPost

Are YouTube API uploads still forced to private?

Most answers online still say yes: since July 2020, videos uploaded from unverified API projects were locked to private until you passed a compliance audit. That is no longer what YouTube's documentation says. Here is what changed and what still stands between you and public uploads.

Checked against the platform's official documentation on 2026-10-21. These rules change; confirm against the docs before relying on them.

What changed

The July 28, 2020 entry in the Data API revision history introduced the rule: uploads from unverified API projects created after that date were restricted to private viewing mode, and only an audit lifted it. The current videos.insert reference now says the opposite: videos uploaded from unverified API projects are not restricted to private viewing mode.

So if status.privacyStatus is public (or omitted, since it defaults to public), the upload should publish publicly. If it doesn't, the cause is usually the channel's own default privacy setting, or YouTube's processing, not your project's status.

What still gates you

OAuth verification. youtube.upload is a sensitive scope. An unverified app can be used by up to 100 test users, behind Google's “this app isn't verified” warning. To go further you submit the consent screen for verification: a privacy policy on your domain, a demo video showing the scope in use, and a written justification.

Upload quota. In December 2025 the cost of an upload dropped from about 1,600 units to about 100, and since June 1, 2026 videos.insert is charged to its own quota bucket, separate from the rest of the API. The method's reference currently lists 100 calls a day. If you need more, you apply for a quota extension, and that review asks how your app uses the API.

If you are reading an older guide or forum answer that tells you to request the API compliance audit to make uploads public, check its date. The quota extension form still exists; the private lock it once lifted no longer applies according to the current docs.

Checklist for a public upload

  1. Request youtube.upload and complete OAuth verification if anyone other than your test users will connect.
  2. Upload with the resumable protocol and set status.privacyStatus explicitly to the value you want.
  3. Set status.selfDeclaredMadeForKids so the made-for-kids designation is explicit rather than left for YouTube to ask about later.
  4. After upload, read the video back (videos.list with part=status) to confirm the privacy YouTube actually applied.

Questions people arrive with

Are videos uploaded through the YouTube Data API still locked to private?

Not any more. From 2020, videos uploaded from unverified API projects were restricted to private until the project passed an audit. YouTube's current videos.insert documentation says videos uploaded from unverified API projects are not restricted to private viewing mode.

Why did my YouTube API upload still come out private?

Check three things: whether your request set status.privacyStatus (it defaults to public when omitted), whether the channel's own settings default uploads to private, and whether YouTube flagged the video during processing. Some uploads default to private because of creator account settings.

Do I still need Google OAuth verification to upload to YouTube?

Yes, for anyone beyond your test users. youtube.upload is a sensitive scope: an unverified app is limited to 100 test users and shows the unverified-app warning. Verification needs a privacy policy, a demo video of the scope in use and a justification.

How much quota does a YouTube upload cost now?

Uploads have their own quota bucket. In December 2025 YouTube cut the cost of an upload from about 1,600 units to about 100, and since June 2026 videos.insert is charged to its own bucket separate from the rest of the API. The videos.insert docs currently list 100 calls a day. Check your project's quota page for your actual limit.

Related guides

If you'd rather not run the review yourself

QPost is already audited by TikTok and handles the OAuth, token refresh and media hosting for TikTok, Instagram and YouTube. Your users connect their own accounts, and you publish through one REST API or an MCP server. Free while in beta.