<!-- Generated from the canonical OpenPost public page. Do not edit this build artifact. -->

Title: YouTube
Description: Configure Google OAuth and YouTube video uploads.
Canonical: https://docs.openpo.st/self-hosting/integrations/youtube
Source: [https://docs.openpo.st/self-hosting/integrations/youtube](https://docs.openpo.st/self-hosting/integrations/youtube)

# YouTube

In the [Google Cloud Console](https://console.cloud.google.com/), create a project, enable YouTube Data API v3, configure the OAuth consent screen, create an OAuth client for a web application, and add this authorized redirect URI:

```text
https://your-domain.example/api/v1/accounts/youtube/callback
```

Store the client in `OPENPOST_PROVIDER_APPS`:

```json
[
  {
    "provider": "youtube",
    "client_id": "your-client-id",
    "client_secret": "your-client-secret",
    "redirect_uri": "https://your-domain.example/api/v1/accounts/youtube/callback"
  }
]
```

Restart OpenPost and connect from **Settings → Workspace → Social accounts → YouTube**. The user selects a channel during OAuth. OpenPost uploads one video with resumable upload handling. YouTube privacy, title, description, category, playlist, thumbnail, and scheduling options are set on the publication or its YouTube rendition. Uploads default to private.

The app requests profile, email, YouTube read, upload, and YouTube scopes. Google verification or project testing restrictions can affect who can connect and whether uploads stay private. Test with the exact channel and privacy setting you need.

If no channel appears, the Google identity has no available YouTube channel. For upload errors, verify API v3 is enabled, the OAuth consent screen allows the account, and the callback matches exactly. Reconnect after changing scopes.
