YouTube White-label Setup

YouTube setup is mostly a Google Cloud task. This guide strips it down to the pieces UniPost needs so you can get one branded OAuth flow working without wandering around Google Cloud menus.

Fastest route to a first success: create the app in Google Cloud Console, add the callback URL shown on this page, paste the credentials into UniPost, then connect one real test account before you expand scope or review work.

At a glance

QuestionAnswer
Create the app inGoogle Cloud Console
UniPost credential cardYouTube
Client fields to copyClient ID + Client Secret
Best forProducts connecting customer-owned YouTube channels while keeping the Google consent experience under your brand.
App review / approvalScope verification may be needed depending on your rollout shape. Even before formal verification, start by proving the OAuth wiring with one real channel owner.

Before you start

  • A Google Cloud project owned by the company, not by an individual engineer.
  • The YouTube channel owner account you will use for the first smoke test.
  • A consent-screen brand name and support email you are comfortable shipping.
  • A plan for how your team will handle Google verification if the project grows beyond internal use.

Callback URLs to whitelist

Copy these exactly into the platform developer console. Redirect mismatches are the fastest way to burn time during setup.

https://api.unipost.dev/v1/connect/callback/youtube

Screenshot walkthrough

Generate Google app creds

This first pass gets you to a working `Client ID` and `Client Secret` so you can save them in UniPost.

Step 1: pick or create a Google Cloud project
Step 2: search `YouTube Data API v3` and enable it
Step 3a: open the OAuth consent screen from APIs & Services
Step 3b: finish the initial app setup in Google Auth Platform
Step 3c: switch Google audience to `Production` so any user can connect
Step 4: go to Clients and click `Create client`
Step 5: choose `Web application` and add UniPost's redirect URI
Authorized redirect URI: `https://api.unipost.dev/v1/connect/callback/youtube`
Step 6: copy the Google `Client ID` and `Client Secret`
Step 7: paste them into UniPost's YouTube row and click `Save`

Google app verification

After the credentials are saved in UniPost, this is the next Google-side flow to capture if you want your app name and logo to show properly and remove the unverified warning for broader rollout.

Step 1: open Google Auth Platform and go to `Branding`
Step 2: fill in app name, logo, homepage, privacy policy, terms, and authorized domains
Step 3: run branding verification and publish the approved branding
Step 4: go to `Data Access` and confirm the YouTube scopes your app is requesting
Step 5: open `Verification Center` and prepare the submission
Step 6: submit scope justification and demo video for review

What to paste into UniPost

Google Cloud fieldUniPost fieldNotes
OAuth Client IDClient IDPaste from the Google OAuth client you intend to run in production.
OAuth Client SecretClient SecretKeep in your secrets system; UniPost stores it encrypted.
Authorized redirect URICallback URL belowMust match exactly or Google rejects the callback.

Save the credentials first, then start a fresh connection attempt. Troubleshooting an OAuth flow against stale credentials usually creates false leads.

Connect a YouTube account through your app

After your YouTube credentials are saved, prove the customer-facing flow your own app will use: create an API key, choose the branded profile, create a Connect session, send the returned OAuth URL to your end user, then confirm UniPost recorded the managed YouTube account.

1
Step 1: create your first API key in the dashboard
Open UniPost in the same workspace where you saved the YouTube credentials, create an API key, and store it immediately. The first key must be created in the dashboard because there is no API key available yet to call POST/v1/api-keys.
2
Step 2: list profiles and copy the `profile_id` you will use for branding
Every workspace gets at least one profile. Start by listing profiles so you can grab the id for the profile that should own your hosted Connect branding.
3
Step 3: patch the profile branding that should show on hosted Connect
With the profile_id in hand, update the logo, display name, and primary color. This is the fastest way to confirm your hosted Connect surface is reading your own branding instead of UniPost defaults.
4
Step 4: create a YouTube Connect session for your app user
From your backend, create a Connect session with platform set to youtube, the branded profile_id, and your stable external_user_id. UniPost returns a hosted OAuth URL. Redirect your app user to that URL, or open it inside the connection flow in your own product, so they can authorize their YouTube channel under your white-label Google app.
5
Step 5: confirm the managed YouTube account is visible through the API
After the user completes OAuth, UniPost stores the connected YouTube channel as a managed account tied to your external_user_id. Verify it through the accounts API; the same user should also appear in the dashboard's Developer App Users view.
6
Step 6: use that managed account and profile in your first real API workflow
At this point you have the four values you need most often: API_KEY, profile_id, external_user_id, and the connected YouTube account_id. From here, run a small end-to-end publish test so you know the white-label connection is usable, not just visible.

Common blockers

BlockerWhat to do about it
No channel on the test accountA Google login can succeed even when the account has no YouTube channel. Use a real channel owner for the first test.
Wrong Cloud projectCreating the client in the wrong Google Cloud project is a common source of later operational pain. Pick the production owner early.
Verification lagDo not wait for full verification to begin technical testing, but do budget time for it before broad public rollout.

Definition of done

  • Google consent shows your app branding.
  • The callback returns to UniPost successfully.
  • A channel-owning account is connected in the workspace.
  • Your team has recorded the exact Google Cloud project and OAuth client that worked.

Next steps