Skip to content

Connect YouTube with your own API keys

Postproxy lets you connect YouTube channels using your own Google Cloud credentials instead of Postproxy’s shared app. Channels connected this way are exempt from the shared 24-hour posting quota and run against your own project’s API quota.

This guide walks through creating a Google Cloud project, enabling the YouTube Data API v3 and YouTube Analytics API, configuring the OAuth consent screen, creating an OAuth 2.0 client with Postproxy’s redirect URI, and saving the client ID and secret in your Postproxy account.

Open the Google Cloud Console and sign in with the Google account that owns (or manages) the YouTube channel you want to post from.

Click the project picker in the top bar, then New Project. Give it a name (for example, postproxy-youtube) and click Create. Once it finishes, make sure the new project is selected in the project picker.

You need two APIs enabled on this project:

  • YouTube Data API v3 — uploads videos and manages channel content.
  • YouTube Analytics API — reads channel and video statistics.

Open APIs & Services → Library (or go straight to the API Library). Search for YouTube Data API v3, open it, and click Enable. Then search for YouTube Analytics API and click Enable on that one too.

Both should now appear under APIs & Services → Enabled APIs & services.

Section titled “Step 3: Configure the OAuth consent screen”

Open APIs & Services → OAuth consent screen.

  1. Choose External as the user type and click Create.
  2. Fill in the required app information — App name, User support email, and a Developer contact email. The app name is what users see on Google’s authorization screen.
  3. On the Scopes step you can continue without adding scopes manually — Postproxy requests the scopes it needs at connection time.
  4. On the Test users step, add the Google account(s) you’ll use to connect channels.

Open APIs & Services → Credentials, click Create Credentials, and choose OAuth client ID.

  • Application type: Web application

  • Name: anything you’ll recognize, e.g. Postproxy

  • Authorized redirect URIs: add

    https://app.postproxy.dev/auth/youtube/callback

Click Create. Google shows a popup with your Client ID and Client Secret — copy both. The secret is also retrievable later from the credential’s detail page.

In the Postproxy dashboard, open Account → BYOK. Find the YouTube — Bring Your Own Keys card, paste your Client ID into Client ID and your Client Secret into Client secret, then click Save keys.

From this point, any new YouTube channel connected to your Postproxy account authorizes through your Google Cloud project.

Go to Profiles → Connect account → YouTube in Postproxy. You’ll be redirected to Google’s authorization screen — sign in with one of your test users (or any account if the app is published), grant access, and you’ll land back on Postproxy with the channel connected and ready to publish.

YouTube channels connected before you saved BYO keys still post through Postproxy’s shared app. To migrate them, disconnect the profile and reconnect it after saving your keys — the new connection picks up your Google Cloud project automatically.

redirect_uri_mismatch — the authorized redirect URI in your OAuth client doesn’t match https://app.postproxy.dev/auth/youtube/callback exactly. Fix it under APIs & Services → Credentials → your client → Authorized redirect URIs.

access_denied or “app is being tested” — the Google account you’re connecting isn’t on the test-users list. Add it under OAuth consent screen → Test users, or publish the app.

Upload fails with a quota or quotaExceeded error — your project’s YouTube Data API quota is exhausted for the day. Check usage under APIs & Services → Enabled APIs & services → YouTube Data API v3 → Quotas, and request more if needed.

accessNotConfigured / API not enabled — one of the two APIs isn’t enabled on the selected project. Re-check Step 2 and confirm both the YouTube Data API v3 and YouTube Analytics API show under Enabled APIs.

Posts succeed in Postproxy but never appear on YouTube — open the post status in Postproxy. If YouTube rejected the video after acceptance (duplicate, copyright claim, processing failure), the platform-level status shows the YouTube error message.