preroll.io docs
DeveloperIntegrations

YouTube

Publish episodes directly to YouTube with full metadata control.

Open with AI:ClaudeChatGPT

Overview

The YouTube integration lets you publish podcast episodes directly to YouTube with full control over metadata, scheduling, thumbnails, and playlists. Manage your YouTube presence alongside your audio distribution without switching tools.

OAuth2 Setup

Register Your Application

  1. Go to the Google Cloud Console
  2. Create a new project (or use the same project as Google Drive)
  3. Enable the YouTube Data API v3 under APIs & Services
  4. Configure the OAuth consent screen
  5. Create OAuth 2.0 credentials (Web application type):
SettingValue
Authorized redirect URIhttps://your-domain.com/api/integrations/youtube/callback
Scopeshttps://www.googleapis.com/auth/youtube.upload, https://www.googleapis.com/auth/youtube
  1. Note your Client ID and Client Secret

Environment Variables

GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret

If you already have Google Drive connected with the same Google Cloud project, the same credentials work for YouTube — the scopes are requested separately during the connection flow.

Connecting Your YouTube Channel

  1. Go to Settings → Integrations
  2. Click Connect next to YouTube
  3. Sign in with the Google account that owns (or manages) the target YouTube channel
  4. If you manage multiple channels, select which channel to connect
  5. preroll.io stores the channel ID and refresh token for future uploads

Publishing Workflow

Publishing an episode to YouTube follows this flow:

1. Upload Video

The video file is uploaded using Google's resumable upload protocol:

  • Supports files up to 256 GB (YouTube's maximum)
  • Chunked upload with automatic retry on failure
  • Progress tracking in the preroll.io UI
  • Background upload — continue working while the file transfers

2. Set Metadata

Configure the video's public-facing information:

FieldDescription
TitleVideo title (max 100 characters)
DescriptionFull description with links, timestamps, credits
TagsSearch keywords (max 500 characters total)
CategoryYouTube category (e.g., Education, Entertainment, Science & Technology)
Privacypublic, unlisted, or private
LanguageDefault audio language
LicenseStandard YouTube or Creative Commons
{
  "title": "EP042: The Answer to Everything",
  "description": "In this episode we discuss...\n\nTimestamps:\n0:00 Intro\n2:30 Topic 1\n...",
  "tags": ["podcast", "technology", "interviews"],
  "categoryId": "22",
  "privacyStatus": "public"
}

3. Publish

Once uploaded with metadata set, the video is published according to the privacy setting. For public videos, it immediately appears on your channel.

Scheduled Publishing

Set a future publish date to queue videos for release:

  1. Set the privacy to private during upload
  2. Specify a publishAt timestamp (ISO 8601 format)
  3. YouTube automatically makes the video public at the scheduled time
{
  "privacyStatus": "private",
  "publishAt": "2025-02-01T14:00:00Z"
}

This is useful for coordinating YouTube releases with your podcast RSS publish time on Transistor.

Thumbnail Upload

Upload a custom thumbnail for each video:

  • Supported formats: JPEG, PNG, GIF, BMP
  • Maximum file size: 2 MB
  • Recommended resolution: 1280x720 pixels (16:9 aspect ratio)
  • Minimum width: 640 pixels

Thumbnails can be uploaded at any time after the video is created — useful if your thumbnail designer delivers after the initial upload.

Playlist Management

Organize episodes into YouTube playlists:

ActionDescription
Create playlistCreate a new playlist for a show
Add to playlistAdd published videos to one or more playlists
ReorderChange video position within a playlist
RemoveRemove a video from a playlist without deleting it

Automatic Playlist Assignment

You can configure a show to automatically add new episodes to a specific playlist. When an episode is published to YouTube, it's appended to the configured playlist in the correct order.

Show Settings → Distribution → YouTube
├── Channel: Your Channel Name
├── Default Playlist: "The Morning Show - Season 3"
├── Default Category: Education
└── Default Privacy: Public

Metadata Templates

Configure default metadata per show to avoid repetitive entry:

  • Description template — include standard links, social handles, and boilerplate
  • Default tags — show-level tags applied to every episode
  • Default category — set once per show
  • Default privacy — control whether new uploads default to public, unlisted, or private

Episode-specific metadata overrides the defaults.

Troubleshooting

IssueSolution
Upload fails with 403Verify YouTube Data API is enabled in Google Cloud Console
"Quota exceeded" errorYouTube API has a daily quota — uploads consume 1600 units each
Thumbnail rejectedEnsure image meets size requirements (min 640px wide, max 2 MB)
Channel not foundReconnect with the Google account that owns the channel
Scheduled publish didn't fireVerify the publishAt time is in the future and timezone is correct
Token expiredpreroll.io automatically refreshes tokens — reconnect if persistent

On this page