YouTube Shorts
Mutation
Use the scheduleYouTubePost
mutation to schedule video content to YouTube:
mutation ScheduleYouTubePost($input: ScheduleYouTubePostInput!) {
scheduleYouTubePost(input: $input) {
success
errors {
field
message
}
post {
id
socialAccount {
id
username
}
publishingStatus
title
description
tags
madeForKids
containsSyntheticMedia
privacyStatus
gallery {
id
galleryMediaSet {
id
media {
url
mimeType
}
}
}
submissions {
id
postAt
publishingMethod
}
}
}
}
Input Parameters
ScheduleYouTubePostInput
PUBLIC
, UNLISTED
, PRIVATE
READY_TO_PUBLISH
, DRAFT
(default: READY_TO_PUBLISH
)YouTubePostSubmissionInputType
Each submission defines a specific posting schedule:
AUTOMATIC
, MANUAL
(default: AUTOMATIC
)Examples
Simple YouTube Short
Schedule a basic YouTube Short with a video from URL.
{
"input": {
"username": "mychannel",
"title": "Amazing Dance Tutorial #Shorts",
"description": "Learn this viral dance in just 60 seconds! Follow for more tutorials.\n\n#dance #tutorial #shorts #viral",
"tags": ["dance", "tutorial", "shorts", "viral", "howto"],
"mediaUrl": "https://example.com/dance-short.mp4",
"madeForKids": false,
"privacyStatus": "PUBLIC",
"submissions": [
{
"postAt": "2025-12-01T18:00:00Z"
}
]
}
}
YouTube Short with Content Library Media
Schedule a video using media from your Content Library.
{
"input": {
"username": "mychannel",
"title": "Quick Cooking Hack You Need to Try!",
"description": "This cooking hack will change your life! Save this for later and try it today.\n\nIngredients mentioned:\n- Ingredient 1\n- Ingredient 2\n\n#cooking #foodhacks #shorts #recipe",
"tags": ["cooking", "food", "hacks", "recipe", "kitchen"],
"mediaName": "cooking-hack-video.mp4",
"madeForKids": false,
"privacyStatus": "PUBLIC",
"submissions": [
{
"postAt": "2025-12-01T16:30:00Z"
}
]
}
}
Kids Content Video
Schedule a YouTube video appropriate for children.
{
"input": {
"username": "kidschannel",
"title": "Fun Learning Song for Kids",
"description": "Educational and fun song for children to learn colors and shapes!\n\nSafe content for kids with no ads or external links.",
"tags": ["kids", "education", "learning", "songs", "colors"],
"mediaUrl": "https://example.com/kids-song.mp4",
"madeForKids": true,
"privacyStatus": "PUBLIC",
"submissions": [
{
"postAt": "2025-12-01T14:00:00Z"
}
]
}
}
Synthetic Media Content
Schedule a video containing AI-generated or altered content.
{
"input": {
"username": "techchannel",
"title": "AI-Generated Video Experiment",
"description": "Testing out the latest AI video generation tools. This video contains synthetic media created using AI.\n\n#ai #technology #synthetic #experiment",
"tags": ["ai", "technology", "synthetic", "experiment", "future"],
"mediaUrl": "https://example.com/ai-generated-video.mp4",
"madeForKids": false,
"containsSyntheticMedia": true,
"privacyStatus": "PUBLIC",
"submissions": [
{
"postAt": "2025-12-01T20:00:00Z"
}
]
}
}
Unlisted Video
Schedule an unlisted video that won't appear in search results.
{
"input": {
"username": "mychannel",
"title": "Behind the Scenes - Unlisted",
"description": "Exclusive behind-the-scenes content for our community. This video is unlisted and only accessible via direct link.",
"tags": ["behind-the-scenes", "exclusive", "community"],
"mediaUrl": "https://example.com/bts-video.mp4",
"madeForKids": false,
"privacyStatus": "UNLISTED",
"submissions": [
{
"postAt": "2025-12-01T12:00:00Z"
}
]
}
}
Response Types
Success Response
{
"data": {
"scheduleYouTubePost": {
"success": true,
"errors": [],
"post": {
"id": "123",
"socialAccount": {
"id": "456",
"username": "mychannel"
},
"publishingStatus": "READY_TO_PUBLISH",
"title": "Amazing Dance Tutorial #Shorts",
"description": "Learn this viral dance in just 60 seconds! Follow for more tutorials.\n\n#dance #tutorial #shorts #viral",
"tags": ["dance", "tutorial", "shorts", "viral", "howto"],
"madeForKids": false,
"containsSyntheticMedia": false,
"privacyStatus": "PUBLIC",
"gallery": {
"id": "789",
"media": [
{
"id": "101",
"url": "https://cdn.example.com/dance-short.mp4",
"type": "video"
}
]
},
"submissions": [
{
"id": "112",
"postAt": "2025-12-01T18:00:00Z",
"publishingMethod": "AUTOMATIC"
}
]
}
}
}
}
Error Response
{
"data": {
"scheduleYouTubePost": {
"success": false,
"errors": [
{
"field": "title",
"message": "YouTube video titles cannot exceed 100 characters."
}
],
"post": null
}
}
}
Validation Rules
- Video Duration: Maximum 60 seconds for YouTube Shorts, up to 12 hours for regular videos
- File Size: Maximum 256GB per video
- Video Format: Supports MP4, MOV, AVI, WMV, FLV, 3GPP, WEBM
- Aspect Ratios: Vertical (9:16) recommended for Shorts, also supports 16:9 and 1:1
- Resolution: Up to 4K (3840x2160) supported
- Frame Rate: Up to 60fps supported
- Title Length: Maximum 100 characters
- Description Length: Maximum 5,000 characters
- Tags: Maximum 500 characters total across all tags
- COPPA Compliance: Must correctly identify content made for kids
- Synthetic Media: Must be disclosed if content is AI-generated or altered
- Scheduling: Posts must be scheduled for future dates only
- Account Limits: Respects your plan's monthly post limits
Common Errors
The specified username is not connected to your Postpone account. Connect the account in your settings first.
Your video title is too long. Keep titles under 100 characters for better visibility and compliance.
You must include a video file. Use gallery
, mediaUrl
, or mediaName
to attach a video to your post.
Your video format is not supported. Use MP4, MOV, AVI, WMV, FLV, 3GPP, or WEBM format.
Your video file is too large. YouTube supports videos up to 256GB in size.
For YouTube Shorts, videos must be 60 seconds or shorter. Longer videos will be treated as regular YouTube videos.
Your video description is too long. Keep descriptions under 5,000 characters.
Your tags exceed the 500 character limit. Reduce the number or length of your tags.
You must specify whether content is made for kids to comply with COPPA regulations.
The postAt
timestamp must be in the future. Check your timezone settings.
You've reached your plan's YouTube post limit for the scheduled month. Upgrade your plan or schedule for a different month.