Postato Docs
GuidesPlatforms

YouTube

Uploads, Shorts, visibility, and quota budget.

YouTube

Posting uses the YouTube Data API v3. OAuth scope: https://www.googleapis.com/auth/youtube.upload. Your Google Cloud project must have the API enabled and sufficient quota budget.

Post types

postTypeWhat it is
videoStandard YouTube video
shortVertical video ≤ 60 seconds; automatically classified as a Short

short is not actually a distinct upload endpoint; it's a regular video upload where the content matches YouTube's Short criteria (vertical, ≤60s). YouTube auto-classifies on its side. Use postType: "short" to signal intent so Postato can validate the file dimensions before upload.

Video specs

PropertyRequirement
FormatMP4, MOV, AVI, WMV, FLV, WEBM, MPEGPS, 3GPP
CodecH.264 recommended; H.265 / VP9 accepted
Max file size256 GB (practical cap is 128 GB for most accounts)
Max duration12 hours (or 15 minutes for unverified accounts)
Aspect for regular16:9 (widescreen) standard
Aspect for short9:16 (vertical) required
Short max duration60 seconds
Recommended resolution1080p or 4K for regular; 1080×1920 for shorts

Payload

{
  "platform": "youtube",
  "accountId": "acc_01H...",
  "status": "publish",
  "postType": "video",
  "content": "Deep dive on our architecture rewrite.",
  "media": [{ "id": "med_01H...video" }],
  "options": {
    "title": "How we rebuilt our API in 8 weeks",
    "categoryId": "28",
    "privacy": "public",
    "tags": ["engineering", "api", "postato"],
    "madeForKids": false
  }
}

content maps to the video's description (up to 5,000 characters). options.title is the YouTube video title (up to 100 characters, required).

Privacy

options.privacy:

ValueVisibility
publicAnyone can find
unlistedAccessible via direct link only
privateOnly you and invited viewers

Categories

options.categoryId is a numeric string. Common ones:

  • 22: People & Blogs
  • 24: Entertainment
  • 27: Education
  • 28: Science & Technology
  • 26: Howto & Style

Full list: YouTube Data API videoCategories.list.

Tags

options.tags is an array of strings. Up to 500 characters total across all tags. Tags help discoverability but are less impactful than they used to be; don't obsess.

Made for Kids

options.madeForKids (required). Legal compliance flag: if your content is directed at children, set true. Misrepresenting is a COPPA violation in the US.

Thumbnails

Custom thumbnails are supported but need a separate call (not included in POST /posts yet). The video publishes with a YouTube-generated frame; you can upload the custom thumbnail afterward via the video.update flow. We're tracking native support; let us know if this is blocking.

Quota budget

YouTube Data API uses a quota system. Each project gets 10,000 units/day by default:

OperationCost
Video upload~1,600 units
Video update (e.g., thumbnail)~50 units
Insights query~2 units

A default project can upload ~6 videos per day. Request a quota increase through Google Cloud Console for higher volumes; the form takes 1–4 weeks to approve.

Scheduling

Via options.publishAt (ISO 8601). The video uploads immediately but stays private until publishAt, then auto-transitions to public.

Postato's own status: "scheduled" + scheduledAt delays the upload itself until the scheduled time. Use the YouTube-native publishAt if you want the video uploaded NOW but visible LATER (useful for pre-processing / transcoding lead time); use Postato's scheduled if you want the whole flow delayed.

Gotchas

  • Unverified account 15-min cap: new Google accounts can't upload videos over 15 minutes until verified (SMS code). Users should verify in YouTube Studio before trying.
  • Age-restricted or region-blocked content: these flags are set by YouTube post-upload based on content scanning. Your post can publish successfully and then get restricted minutes later; listen for manual review via the YouTube API if it matters.
  • Community Guidelines strikes: posting flagged content gets the account strike. Three strikes = channel termination. Guard programmatic posters with content moderation.
  • Quota exhaustion at scale: 6 uploads/day sounds like a lot until you're running 50 accounts through one project. Request more, or split across projects.
  • Copyright claims: YouTube's Content ID system flags matches automatically post-upload. Your video publishes fine but may have monetization removed. Not a Postato concern, but worth knowing.

On this page