YouTube
Configure YouTube in Outstand with your own Google Cloud credentials (BYOK) to connect a channel and manage your content.
YouTube is fully supported in Outstand through the Bring Your Own Key (BYOK) model. This allows you to use your own Google Cloud credentials to connect your YouTube channel and manage your YouTube content through Outstand's unified social media API.
Managed Keys are included with your subscription. We handle the OAuth app setup for you, so you can skip the approval process entirely. Follow the steps below only if you want full white-labelling with your own Google/YouTube app credentials (BYOK). Contact support@outstand.so if you have questions about your Managed Keys setup.
Quick Information
Our application works with the following OAuth scopes:
https://www.googleapis.com/auth/youtube.upload- Upload videos to YouTubehttps://www.googleapis.com/auth/youtube.readonly- View your YouTube account
Whether you use Managed Keys or BYOK, these are the OAuth scopes required for the integration to work.
Prerequisites
Before you begin, ensure you have:
- A YouTube channel (personal or brand account)
- A Google Cloud Platform account
- Access to Google Cloud Console
- Understanding of OAuth 2.0 flows
Note: You'll need admin access to the YouTube channel you want to connect. Brand accounts require appropriate permissions.
Step 1: Create a Google Cloud Project
- Go to Google Cloud Console
- Click on the project dropdown at the top
- Click New Project
- Enter a project name (e.g., "Outstand YouTube Integration")
- Click Create
- Wait for the project to be created and select it from the dropdown
Step 2: Enable YouTube Data API v3
- In your Google Cloud project, navigate to APIs & Services → Library
- Search for "YouTube Data API v3"
- Click on YouTube Data API v3 from the results
- Click Enable
Step 3: Create OAuth 2.0 Credentials
- Navigate to APIs & Services → Credentials
- Click Create Credentials → OAuth client ID
- If prompted, configure the OAuth consent screen first:
- Choose External (unless you have a Google Workspace account)
- Fill in the required information:
- App name: Your application name (e.g., "Outstand Social Media Manager")
- User support email: Your support email
- Developer contact information: Your email
- Click Save and Continue
- Add scopes (optional for now, we'll add them in the API)
- Add test users if needed (for testing before app verification)
- Click Save and Continue through the remaining steps
- Back in the Credentials page, click Create Credentials → OAuth client ID
- Select Web application as the application type
- Configure the OAuth client:
- Name: Outstand YouTube Integration (or your preferred name)
- Authorized redirect URIs: Add your Outstand callback URL:
- Production and development:
https://www.outstand.so/app/api/socials/youtube/callback
- Production and development:
- Click Create
- You'll see a dialog with your credentials:
- Client ID: This is your OAuth Client ID (referred to as "client_key" in the API)
- Client Secret: This is your OAuth Client Secret (referred to as "client_secret" in the API)
- Copy both values immediately and store them securely
Security Note: The Client Secret is sensitive information. Save it in a secure location immediately. You won't be able to view it again after closing this dialog (though you can generate a new one).
Step 4: Configure OAuth Consent Screen Scopes
The YouTube integration requires the following OAuth scopes:
https://www.googleapis.com/auth/youtube.upload- Upload videos to YouTubehttps://www.googleapis.com/auth/youtube.readonly- View your YouTube account
These scopes are automatically requested during the OAuth flow. Ensure your OAuth consent screen is configured to request these scopes.
Step 5: Add Credentials to Outstand
Once you have your Client ID and Client Secret, you can add them to Outstand:
Method 1: Using the Dashboard
- Log in to Outstand Dashboard
- Navigate to Settings → Social Networks
- Select YouTube from the dropdown
- Enter your Client ID in the "Client ID / API Key" field
- Enter your Client Secret in the "Client Secret / API Secret" field
- Click Add Social Network
Method 2: Using the API
curl -X POST https://api.outstand.so/v1/social-networks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"network": "youtube",
"client_key": "YOUR_CLIENT_ID_HERE",
"client_secret": "YOUR_CLIENT_SECRET_HERE"
}'Step 6: Connect Your YouTube Account
After adding your credentials:
- Navigate to Accounts in your Outstand dashboard
- Click Connect Account
- Select YouTube
- Sign in with your Google account that has access to the YouTube channel you want to connect
- Grant the required permissions (upload videos, view your YouTube account)
- Your YouTube channel will appear in your connected accounts list
Note: Make sure you're signing in with a Google account that has access to the YouTube channel you want to use. For brand accounts, ensure you have the necessary permissions.
YouTube-Specific Configuration
When creating posts for YouTube, you can specify additional configuration options in the networkOverrideConfiguration field:
{
"networkOverrideConfiguration": {
"youtubeConfiguration": {
"isShort": false,
"categoryId": "22",
"privacyStatus": "public",
"madeForKids": false,
"tags": ["technology", "tutorial"],
"title": "Custom Video Title"
}
}
}Configuration Options
- isShort (boolean, optional): Set to
trueto mark the video as a YouTube Short. When enabled,#shortswill be automatically appended to the video description. - categoryId (string, optional): YouTube category ID (e.g., "22" for People & Blogs, "24" for Entertainment). Defaults to "22" if not specified. See YouTube category IDs for a full list.
- privacyStatus (string, optional): One of
"public","private", or"unlisted". Defaults to"public". - madeForKids (boolean, optional): Whether the video is made for kids. Defaults to
false. - tags (array of strings, optional): Tags to add to the video.
- title (string, optional): Custom title for the video. If not provided, the first line of the post content will be used (truncated to 100 characters).
Example: Creating a YouTube Short
curl -X POST https://api.outstand.so/v1/posts/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"containers": [
{
"content": "Check out this amazing tutorial!",
"media": [
{
"url": "https://example.com/video.mp4",
"filename": "video.mp4"
}
]
}
],
"social_account_ids": [123],
"networkOverrideConfiguration": {
"youtubeConfiguration": {
"isShort": true,
"privacyStatus": "public",
"tags": ["tutorial", "shorts"]
}
}
}'Important Notes
Video Requirements
- Video URL: Videos must be provided as publicly accessible URLs. The video will be downloaded and uploaded to YouTube during the publishing process.
- Video Format: YouTube supports MOV, MPEG-1/2/4 (MP4), MPEGPS, AVI, WMV, FLV, 3GPP, WebM, DNxHR, ProRes, CineForm, and HEVC (H.265). MP4 is recommended for best compatibility. See YouTube's supported formats.
- File Size: YouTube limits on file size and length:
- Maximum file size: 256 GB or 12 hours in length (whichever is less). See upload requirements.
- For videos longer than 15 minutes, your channel must be verified.
- Thumbnails: Custom thumbnails must be JPEG or PNG and up to 2 MB. See thumbnails.set.
Shorts Detection
Outstand does not automatically detect if a video is a YouTube Short based on video metadata (duration, aspect ratio, etc.) due to technical limitations. Instead:
- You must manually set
youtubeConfiguration.isShort: trueto mark a video as a Short - When
isShortistrue,#shortswill be automatically appended to the video description - Future enhancements may include client-side metadata extraction for automatic detection
Resumable Uploads
YouTube video uploads use resumable uploads to handle large files and network interruptions:
- Videos are uploaded in 256KB chunks
- If an upload fails, it can be resumed from the last successfully uploaded byte
- Large videos may take time to upload depending on file size and network speed
Token Management
- YouTube access tokens expire after 1 hour
- A refresh token is automatically stored during the OAuth flow
- Tokens are automatically refreshed when needed
- Ensure
prompt=consentis used during OAuth to receive refresh tokens
Publishing Rate Limits
YouTube does not cap posts with a simple "per day" number. Instead, publishing is governed by the YouTube Data API v3 quota, which is measured in units per project per day.
- Default quota: 10,000 units per day per Google Cloud project. See Getting started.
- Upload cost: a video upload (
videos.insert) costs 1,600 units. See the quota cost reference. - Effective uploads: with the default quota this allows roughly 6 video uploads per day (10,000 / 1,600), before accounting for any other API calls your integration makes.
- When you use Managed Keys, this quota is shared across Outstand's YouTube integration. For higher volume with your own credentials (BYOK), you can request a quota increase in the Google Cloud Console.
Troubleshooting
"Invalid client credentials"
- Verify you copied the Client ID and Client Secret correctly
- Ensure there are no extra spaces or formatting issues
- Check that your Google Cloud project has YouTube Data API v3 enabled
"Redirect URI mismatch"
- Verify the exact redirect URI in your Google Cloud Console matches:
https://www.outstand.so/app/api/socials/youtube/callback - Google is strict about exact matching (including protocol and trailing slashes)
- Check both the OAuth client configuration and the callback URL
"Access denied" or "Insufficient permissions"
- Ensure you granted all requested permissions during OAuth
- Check that your Google account has access to the YouTube channel
- For brand accounts, verify you have the necessary permissions
"Video upload failed"
- Verify the video URL is publicly accessible
- Check that the video format is supported by YouTube
- Ensure the file size is within YouTube's limits
- Check network connectivity and try again (resumable uploads will resume automatically)
"Quota exceeded"
- YouTube API has daily quotas that vary by project
- Check your quota usage in Google Cloud Console → APIs & Services → Dashboard
- You may need to request a quota increase if you frequently upload videos
Next Steps
Once your YouTube credentials are configured and accounts connected, you can: