Skip to main content
YouTube supports video uploads only through Postsiva. Every upload requires a title; description and playlist assignment are optional.

Connect

curl -X POST "https://backend.postsiva.com/unified/oauth/url" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: psk_live_YOUR_KEY" \
  -d '{"platform": ["youtube"]}'
One YouTube channel per workspace.

Post video

curl -X POST "https://backend.postsiva.com/unified/post/video" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: psk_live_YOUR_KEY" \
  -d '{
    "platforms": ["youtube"],
    "default_text": "Fallback if youtube_title omitted.",
    "video_id": "your-video-media-uuid",
    "youtube": {
      "youtube_title": "How We Built Our API in 30 Days",
      "youtube_description": "Full walkthrough of our social posting stack.\n\nTimestamps:\n0:00 Intro\n2:30 Architecture"
    }
  }'

Required: title

YouTube rejects uploads without a title. Provide it via:
FieldPriority
youtube.youtube_titlePreferred — YouTube-specific title
default_textFallback title if youtube_title omitted
If neither is set, the API returns an error:
{
  "message": "YouTube requires a title. Set default_text or youtube.youtube_title."
}

Text limits

FieldLimit
Title (youtube_title / default_text)100 characters (validated)
Description (youtube_description)5,000 characters
See Character limits.

Optional fields

FieldDescription
youtube_descriptionVideo description (supports newlines)
youtube_playlist_idAdd video to playlist after upload
thumbnail_image_idCustom thumbnail (workspace media ID)
generate_thumbnail_from_contentAuto-generate thumbnail from title/description
Custom thumbnails work best for 16:9 long-form videos, not Shorts.

Upload workflow

  1. Upload videoPOST /media/upload (chunked for files ≥ 10 MB)
  2. PostPOST /unified/post/video with video_id and title
  3. Verify — Check YouTube Studio or GET /unified/posts?platforms=youtube

Scheduling

{
  "platforms": ["youtube"],
  "video_id": "media-uuid",
  "youtube": {
    "youtube_title": "Scheduled launch video",
    "youtube_description": "Premieres at noon UTC."
  },
  "scheduled_time": "2026-08-01T12:00:00Z"
}

Multi-platform video

Share one video to YouTube plus social platforms:
{
  "platforms": ["youtube", "linkedin", "facebook"],
  "default_text": "Short social caption.",
  "video_id": "shared-video-uuid",
  "youtube": {
    "youtube_title": "Full Tutorial: Getting Started",
    "youtube_description": "Complete guide with chapters."
  },
  "linkedin": {
    "linkedin_page_ids": ["108813535"],
    "post_to_personal": true
  },
  "facebook": {
    "facebook_page_ids": ["756356074224043"]
  }
}

Common errors

ErrorCauseFix
NOT_CONNECTEDYouTube not linkedComplete OAuth
Missing titleNo youtube_title or default_textAdd title
422 title limitTitle over 100 charactersShorten title
422 descriptionOver 5,000 charactersShorten description