YouTube API Guide
Upload and schedule YouTube videos with titles, descriptions, tags, privacy settings, and category assignments. PostEverywhere handles the multi-step YouTube upload process and metadata configuration through a single API call. For a general overview of all supported platforms, see the Introduction.
Supported Content Types
| Content Type | Media Required | Description |
|---|---|---|
| Video | Video (MP4) | Standard YouTube video. A title is required. |
| Short | Video (MP4) | Vertical video (9:16) under 60 seconds is automatically treated as a Short by YouTube. |
YouTube is a video-only platform. Every post must include a video attachment.
Platform-Specific Settings
Use the platform_content.youtube object to set video metadata:
{
"platform_content": {
"youtube": {
"content": "Full video description with links and chapters",
"settings": {
"title": "My Video Title (required)",
"privacyStatus": "public",
"tags": ["tag1", "tag2", "tag3"],
"categoryId": "22",
"madeForKids": false
}
}
}
}
Settings Reference
| Setting | Type | Default | Description |
|---|---|---|---|
content | string | — | Video description. Supports links, chapters, and multi-line text. |
settings.title | string | Required | Video title. Max 100 characters. |
settings.privacyStatus | string | "public" | Visibility setting. See values below. |
settings.tags | string[] | [] | Tags for search discovery. YouTube allows up to 500 characters total across all tags. |
settings.categoryId | string | "22" | YouTube category ID. See common categories below. |
settings.madeForKids | boolean | false | Whether the video is made for children. Affects comments and personalized ads. |
Privacy Statuses
| Value | Description |
|---|---|
public | Visible to everyone. Appears in search results and subscriptions. |
unlisted | Only accessible via direct link. Does not appear in search or on your channel. |
private | Only visible to you and users you explicitly share with. |
Common Category IDs
| ID | Category |
|---|---|
1 | Film & Animation |
2 | Autos & Vehicles |
10 | Music |
15 | Pets & Animals |
17 | Sports |
20 | Gaming |
22 | People & Blogs |
23 | Comedy |
24 | Entertainment |
25 | News & Politics |
26 | Howto & Style |
27 | Education |
28 | Science & Technology |
Example: Create a Post
Schedule a YouTube Video
curl -X POST https://app.posteverywhere.ai/api/v1/posts \
-H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Default description for other platforms",
"account_ids": [2290],
"media_ids": ["e5f6a7b8-c9d0-1234-ef01-345678901234"],
"scheduled_at": "2026-04-15T16:00:00Z",
"timezone": "Europe/London",
"platform_content": {
"youtube": {
"content": "In this video, I walk through the complete setup process.\n\n0:00 Intro\n0:30 Installation\n2:15 Configuration\n4:00 First Run\n\nLinks:\nhttps://example.com/docs",
"settings": {
"title": "Complete Setup Guide - Step by Step Tutorial",
"privacyStatus": "public",
"tags": ["tutorial", "setup guide", "getting started", "walkthrough"],
"categoryId": "28",
"madeForKids": false
}
}
}
}'
Schedule an Unlisted Video for Review
curl -X POST https://app.posteverywhere.ai/api/v1/posts \
-H "Authorization: Bearer $POSTEVERYWHERE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Review draft",
"account_ids": [2290],
"media_ids": ["f6a7b8c9-d0e1-2345-f012-456789012345"],
"platform_content": {
"youtube": {
"content": "Draft video for team review — do not share publicly.",
"settings": {
"title": "Q2 Product Update (DRAFT)",
"privacyStatus": "unlisted",
"madeForKids": false
}
}
}
}'
Requirements & Limits
| Requirement | Limit |
|---|---|
| Title length | 100 characters |
| Description length | 5,000 characters |
| Tags total length | 500 characters |
| Video format | MP4 (H.264) |
| Video max file size | 500 MB |
| Video duration | Up to 12 hours (standard uploads) |
| Shorts duration | Up to 60 seconds |
| Recommended video resolution | 1080p (1920x1080) or higher |
| Recommended Shorts ratio | 9:16 (1080x1920) |
| Thumbnail | Auto-generated by YouTube from video frames |
Tips
- Always provide a
title. It is the only required setting for YouTube. Without it, the post will fail to publish. Keep titles under 70 characters for best search result display. - Use
contentfor rich descriptions with chapters. YouTube parses timestamps in the format0:00 Labelas video chapters. Structure your description with chapter markers to improve viewer retention and search ranking. - Schedule as
unlistedfirst for team review. Upload with"privacyStatus": "unlisted"to let your team review the video on YouTube before making it public. Update the privacy setting directly on YouTube when ready.
Frequently Asked Questions
How do I schedule a YouTube Short via the API?
Upload a vertical video (9:16 aspect ratio) under 60 seconds using the Upload Media endpoint, then create a post normally. YouTube automatically classifies vertical videos under 60 seconds as Shorts -- no special setting is needed.
Is the video title required for YouTube posts?
Yes. The settings.title field is mandatory for YouTube. Posts without a title will fail to publish. Keep titles under 70 characters for optimal display in search results, though the maximum is 100 characters.
Can I set the YouTube video category via the API?
Yes. Use the settings.categoryId field with one of YouTube's standard category IDs. For example, "28" is Science & Technology and "22" is People & Blogs (the default). See the full list of category IDs in the Settings Reference above.
How do I add chapters to my YouTube video description?
Include timestamps in the content field using the format 0:00 Label. YouTube parses these as video chapters. The first timestamp must be 0:00. For example: "0:00 Intro\n0:30 Setup\n2:15 Demo".
Related Platforms
- TikTok -- short-form vertical video, similar to YouTube Shorts
- Instagram -- Instagram Reels for short-form vertical video
- LinkedIn -- professional video content with native video support