Platforms

YouTube

Video uploads, the required title, privacy status, and Shorts.

YouTube takes video and nothing else. No text posts, no images.

Title is required

The one platform with a mandatory option. A post targeting YouTube without platforms.youtube.title is rejected before upload:

await cutedyno.posts.create({
  content: 'How we roast our house blend, start to finish.',
  media: [{ type: 'video', url: videoUrl }],
  accountIds: [youtubeAccountId],
  platforms: {
    youtube: {
      title: 'How we roast our house blend',
      description: 'A walkthrough of our roasting process, from green bean to bag.',
      privacyStatus: 'public',
      tags: ['coffee', 'roasting', 'specialty coffee'],
    },
  },
});

platforms.youtube.description overrides the shared content for this account. Titles are what YouTube search runs on, so a title written for YouTube rather than reused from a caption is worth the extra field.

Options

OptionEffect
titleVideo title. Required.
descriptionVideo description. Falls back to the post's content.
privacyStatuspublic, private, or unlisted. Defaults to public.
tagsSearch tags.

unlisted is the useful one for review workflows: the video is uploaded and playable by anyone with the link, but does not appear on the channel or in search. Someone can watch it before you flip it public in YouTube Studio.

Shorts

There is no Shorts flag. YouTube decides: a vertical video under 60 seconds is treated as a Short automatically. Upload it the same way as anything else.

Analytics are Shorts-oriented, since that is what most API publishing produces. Long-form uploads publish fine, but the metrics shown lean towards Shorts reporting.

Channel requirements

The connected Google account must have a channel. Accounts without one connect and then fail at publish with "No YouTube channel found" — create the channel in YouTube first.

Unverified channels are limited to 15-minute uploads. Verifying the channel with a phone number lifts that, and is done in YouTube Studio, not here.

Uploading

CuteDyno fetches the video and streams it to YouTube in 256 KB chunks over a resumable upload. Large files take a while, and the post sits in processing throughout.

Unlike TikTok and Instagram, there is no processing wait after the upload: once YouTube accepts the bytes, the video ID exists and the post is published. YouTube's own transcoding continues afterwards, so a video can be published but not yet playable in every resolution.

Failures worth handling

MessageMeaning
Video URL and title are required for YouTube postsMissing platforms.youtube.title.
No YouTube channel found for this accountThe Google account has no channel.
YouTube video upload failedRejected mid-upload, usually quota or file size.
Authentication failed. Please reconnect your account.The Google token was revoked. Reconnect.

YouTube's daily upload quota is per project and generous, but a bulk backfill can exhaust it. Spread large migrations over several days.

Analytics

Views, likes, comments, shares, watch time, and subscribers gained, over a rolling 28-day window and per video. Audience demographics come from YouTube Analytics.

Comments

Not supported. YouTube comments are not synced, so they do not appear in GET /v1/comments.