YouTube usually needs more metadata than short-form networks. UniPost exposes those controls in `platform_options.youtube` while keeping the publish flow consistent with the rest of the platform set.
Single-video publishing with rich metadata, Shorts, and playlist insertion.
At a glance
Publishing
Supported
Scheduling
Supported
Analytics
Limited
Inbox
Not supported
Connection
OAuth via Google — Quickstart and White-label both supported
Feature matrix
Feature
Support
Notes
Video posts
✓
Exactly 1 video
Shorts
✓
Use platform_options.youtube.shorts
Scheduling
✓
Use scheduled_at or platform_options.youtube.publish_at
Playlist insertion
✓
Use platform_options.youtube.playlist_id
Analytics
Partial
Likes, comments, and view count today
Text-only posts
X
Video-first platform
Image posts
X
Not a native publish target
Inbox / comments
X
Not part of the UniPost inbox today
Known constraints
Limitation
Why
Daily safety cap
50 publishes/day per connected YouTube channel (UTC reset). Failed uploads do not count toward the cap.
Title is required and does not fall back to caption
platform_options.youtube.title must be set explicitly
made_for_kids must be explicit
YouTube refuses uploads without an audience choice
No inbox surface
Comment moderation is not in UniPost inbox today
Publishing
Ready to publish?Use the shared Publishing guide for hosted URLs, local file uploads, preflight validation, and async publish status. Then use the YouTube examples below for platform-specific payload shape.
Publish examples by surface
Each example calls POST/v1/posts with Bearer auth. Swap the account_ids for your own, then copy the snippet for your language.
Long-form video from a hosted URL
Long-form video from UniPost media library
med_uploaded_video_1 is a placeholder for the media ID returned by POST/v1/media after you reserve the upload and PUT the video bytes to UniPost storage.
Scheduled private upload with playlist insertion
Media & field requirements
Field
Required
Limits
Notes
media_urls or media_ids
Required
Exactly 1 video
Prefer media_ids when starting from a local file. Create the media ID with POST/v1/media, upload the file to the returned upload_url, then publish.
caption
Optional
5,000 chars
Used as YouTube description text.
platform_options.youtube.title
Required
max 100 chars
Required video title. This does not fall back to caption.
platform_options.youtube.made_for_kids
Required
boolean
Explicit audience selection required before publish.
platform_options.youtube.privacy_status
Optional
private / public / unlisted
Dashboard defaults to public, but YouTube may still force private for unverified API projects.
platform_options.youtube.shorts
Optional
boolean
Routes the upload toward Shorts behavior
Hosted URLs: pass the public URL in media_urls. Local files: reserve an upload with POST/v1/media, PUT the bytes to the returned upload_url, then publish with media_ids. Full flow in the Publishing guide.
Media specifications
Per-surface limits for text, images, and video. These are the source of truth UniPost uses for preflight validation and media optimization — treat hard-limit values as enforced and "recommended" values as platform guidance.
Disclosure flag for realistic altered/synthetic media.
platform_options.youtube.playlist_id
string
If set, UniPost calls playlistItems.insert after the upload succeeds.
Analytics
Metric
Support
Notes
Video views
✓
Supported
Likes
✓
Supported
Comments
✓
Supported
Impressions
X
YouTube Data API does not expose impressions per video
Reach
X
Not exposed by YouTube Data API
Shares
X
Not exposed by YouTube Data API
Saves
X
Not exposed by YouTube Data API
Connection modes
Pick the setup that matches how the account is owned. Quickstart is fastest when you publish to your own accounts; White-label is required when your customers bring their own accounts through a branded flow. Full setup details in Quickstart and White-label.
Mode
Best for
App / credentials
Availability
Quickstart
Fast setup — UniPost handles OAuth
UniPost-managed app
Free / paid quota
White-label
Your customers connect their own accounts
Your OAuth app
Paid plans only
Verification
Unverified Google projects cap uploads and may force private
Complete YouTube API verification for public uploads
—
Validation errors
Code
What it means
media_required
YouTube requires exactly one video
too_many_media
More than one media asset supplied
invalid_privacy_status
YouTube privacy value is not recognized
youtube_made_for_kids_required
YouTube requires an explicit made_for_kids value
youtube_publish_at_requires_private
YouTube publish_at only works with private visibility