YouTube Data
Connect YouTube to find videos and channels, read and reply to comments, build and reorder playlists, edit video details, manage subtitles, and follow a live stream.
You end up pasting a Google OAuth Client ID and its matching Client Secret, taken from a Web application client created in a Google Cloud project that has YouTube Data API v3 enabled.
OAuth scope verification before this connector works
Google must verify your OAuth consent screen for the sensitive YouTube scopes before the app can be published beyond test users, and YouTube's API Services team must pass a compliance audit before any quota above the default 10,000 units/day is granted.
- Typical wait
- OAuth sensitive-scope verification: Google states 3-5 business days, though developers commonly report 2-6 weeks when a demo video or privacy policy is queried. Quota audit: no published timeline; YouTube says only that a team member will contact you, and reports range from several weeks to months.
- Cost
- Free. YouTube scopes are sensitive, not restricted, so no third-party security assessment is involved.
- Blocked until approved
- Until verification, the app stays in Testing publishing status: a maximum of 100 test users you list by hand, and refresh tokens are invalidated after 7 days so a long-lived connector stops refreshing and forces re-consent every week. Moving to production without verification still shows every user the 'Google hasn't verified this app' warning screen and keeps the 100-user cap. Separately, until the compliance audit passes you are held to the default quota: 10,000 units/day total, only 100 search.list calls and 100 videos.insert calls per day.
- Works meanwhile
- Everything functional works immediately. Create a Google Cloud project, enable YouTube Data API v3, create an OAuth client, add yourself as a test user, and you can read and write live channel data the same day within the default quota. For a single operator connecting their own channel, verification is never strictly required if the app is left in production status and the warning screen is tolerated.
Where to apply: OAuth verification: Google Cloud Console > APIs & Services > OAuth consent screen (now 'Google Auth Platform' > Branding / Data Access) > Publish app > Prepare for verification, which asks for a verified domain in Search Console, a privacy policy on that domain, per-scope justification and a YouTube demo video of the consent flow. Quota: the 'YouTube API Services - Audit and Quota Extension Form' linked from developers.google.com/youtube/v3/guides/quota_and_compliance_audits.
- The consent screen domain must be verified in Google Search Console by the same account, and the privacy policy must be hosted on that exact domain, or verification bounces immediately.
- The demo video has to show the real consent screen, the scopes being granted and what the app does with the data. Slide decks and mockups are rejected.
- Requesting more scopes than you demonstrate is the most common rejection reason. Ask only for youtube.readonly if you only read.
- The 7-day refresh token expiry in Testing status catches people out. Nothing errors at connect time; the connector simply dies with invalid_grant a week later.
- search.list costs 100 units per call, so the default quota is exhausted by 100 searches, and the quota audit form routinely rejects scraping, bulk indexing or dataset-building use cases.
- YouTube runs periodic re-audits after approval. Passing once is not permanent, and quota can be revoked for drifting out of compliance.
- Content owner (CMS) data is not reachable at all without YouTube Partner Program partner status, regardless of API approval.
- Setup time
- 12 min
- Auth
- OAuth authorization
- API base URL
- https://www.googleapis.com/youtube/v3
- Rate limits
- Quota based rather than request based. A new project gets 10,000 units per day, where a read costs about 1 unit, a write 50, and a search 100.
Before you begin
- A Google account that owns or manages the YouTube channel you want to connect
- A Google Cloud project you can edit. Creating one is free and takes a few seconds
- Permission to publish the OAuth app in Google Auth Platform, under Audience
- The PopMCP callback URL copied to your clipboard, because Google matches redirect URIs character for character
Get your credentials
Enable YouTube Data API v3 on your project
Select the project you want to use in the top bar project picker, then open APIs & Services → Library and search for YouTube Data API v3. Click Enable.
YouTube Data API v3
The YouTube Data API v3 lets an app search for videos, manage playlists, and work with channel resources.
- Provider
- Service name
- youtube.googleapis.com
- Status
- Not enabled
Once enabled the button reads Manage. Check that the project name in the top bar is the project you will create the client in.
Set up the OAuth app branding
Open Google Auth Platform → Branding. If the project has never been configured, click Get started, fill in App name, User support email and Developer contact email, choose External for the audience, and click Create.
Branding
What users see on the Google sign-in and consent screens for this app.
Branding must be configured before the Clients page will let you create a client.
Create a Web application OAuth client
Go to Google Auth Platform → Clients and click Create client. Set Application type to Web application, click Add URI under Authorized redirect URIs, paste the callback URL from the PopMCP connect screen, then click Create.
Create OAuth client
A client ID identifies your app to Google's OAuth servers.
Paste the redirect URI rather than retyping it. Authorized JavaScript origins can stay empty because PopMCP calls Google server-side.
Copy the Client ID and Client secret
Copy the Client ID and Client secret from the OAuth client created dialog into PopMCP. If you already closed the dialog, open the client from the Clients list and click Add secret.
Clients
OAuth clients for this project.
| Name | Type | Client ID | Creation date |
|---|---|---|---|
| PopMCPWeb application | Enabled | 8241****googleusercontent.com | Mar 4, 2026 |
Google shows the secret in full only in this dialog.
Publish the app so the connection does not expire
Open Google Auth Platform → Audience. If Publishing status reads Testing, click Publish app and confirm.
Audience
Who can authorize this app to access their Google account data.
- User type
- External
- Publishing status
- Testing
- OAuth user cap
- 0 / 100
After publishing, Publishing status reads In production.
Connect in PopMCP
Open your workspace, choose YouTube Data in the marketplace, and fill in the connect dialog:
| Field | What to enter |
|---|---|
| OAuth Client IDtext | Google Cloud Console → Google Auth Platform → Clients → Create client → Web application, with the callback URL above pasted into Authorized redirect URIs (copy it, don't retype; Google matches it exactly, including the trailing slash). Enable the YouTube Data API v3 on the same project first (APIs & Services → Library → YouTube Data API v3 → Enable), or every call fails with "accessNotConfigured". |
| OAuth Client Secretsecret | Shown once, in the popup right after you create the client. Google never shows it again. If you closed that popup, open the client and add a new secret. Stored encrypted here, used server-side only. IMPORTANT: in Google Auth Platform → Audience, if the status says "Testing", click "Publish app" first. Testing-mode apps get a refresh token that Google expires after exactly 7 days, so the connection would work for a week and then stop. Publishing does not require Google's review. It only adds a one-time "Google hasn't verified this app" screen, where you click Advanced and continue.Encrypted with AES-256-GCM on save and never shown again. |
https://app.popmcp.com/api/providers/google/callbackPopMCP verifies the credential against YouTube Data immediately. On success the connection flips to Verified and its MCP tools are provisioned.
Permissions PopMCP requests
These are the scopes sent to YouTube Data at authorization time.
| Scope | Why PopMCP asks for it |
|---|---|
| https://www.googleapis.com/auth/youtube.force-ssl | The single scope PopMCP requests. It covers reading and managing videos, playlists, comments, captions and live broadcasts over HTTPS, which is everything the YouTube tools do. |
Verify it worked
After you paste both values, PopMCP sends you to Google's consent screen for the account that owns the channel. Approve it and the connector card flips to Connected with the channel name shown, and a test call listing your uploads returns rows.
Troubleshooting
Error 400: redirect_uri_mismatch
Why: The Authorized redirect URI on the Google client does not match PopMCP's callback URL byte for byte.
Fix: Re-copy the callback URL from the PopMCP connect screen and paste it into the client's Authorized redirect URIs. Watch for a missing or extra trailing slash, http instead of https, and stray whitespace.
accessNotConfigured, or "YouTube Data API v3 has not been used in project ..."
Why: The API was enabled on a different Google Cloud project than the one that owns the OAuth client.
Fix: Check the project name in the console top bar, enable YouTube Data API v3 on that exact project, then retry after a minute.
Connection works for a week, then returns invalid_grant
Why: The OAuth app was left in Testing status. Google expires authorizations by a test user seven days after consent.
Fix: Go to Google Auth Platform → Audience and click Publish app, then reconnect the connector in PopMCP to mint a fresh refresh token. Publishing needs no Google review for this scope. It only adds a one-time "Google hasn't verified this app" screen where you click Advanced and continue.
quotaExceeded after a burst of searches
Why: The project's default 10,000 units per day quota was consumed. A single search.list call costs 100 units.
Fix: Wait for the midnight Pacific reset, spread searches out, or request more quota from IAM & Admin → Quotas & System Limits.
You closed the creation dialog without copying the secret
Why: Google never redisplays a client secret in full.
Fix: Open the client from Google Auth Platform → Clients, click Add secret, copy the new value, then disable the old secret.
Reference
YouTube Analytics
Connect YouTube Analytics to see how your channel and videos perform, where viewers come from, who is watching, and which videos win subscribers.
YouTube Reporting
Connect YouTube Reporting to see how your channel and videos perform, where viewers come from, who they are, and what they earn.