Post to YouTube via API — Schedule, Publish, Analyze
Upload videos and Shorts with thumbnails, tags, geo restrictions, captions, and privacy controls — plus 24/7 live streaming on Pro plans.
24/7 YouTube Live Streaming — Pro plan
Run an always-on RTMP stream to your YouTube channel. Loop video playlists, run scheduled live shows, or broadcast 24/7 — no OBS, no separate streaming service. Managed entirely by CodivUpload infrastructure.
YouTube-specific API controls
More upload parameters than any other scheduling tool exposes.
youtube_type: video / shortsUpload standard YouTube videos or publish as Shorts. CodivUpload sets the correct aspect ratio metadata automatically.
youtube_privacy_statusSet public, private, or unlisted per video. Combine with scheduled_date to release videos at a precise time.
youtube_category_id + youtube_tagsSet the YouTube category (e.g., 22 = People & Blogs) and supply keyword tags to improve discoverability.
youtube_thumbnail_urlSupply a direct URL to a custom thumbnail image (1280×720 JPG/PNG). Uploaded and attached automatically.
youtube_allowed_countries / youtube_blocked_countriesRestrict or allow specific country codes as an array. Useful for licensing compliance across regions.
youtube_caption_url + youtube_default_languageAttach an external caption file (SRT/VTT URL) and declare the video's default language for global audiences.
Live streaming (Pro+)Run always-on RTMP streams to YouTube. Loop playlists, run scheduled live shows, or set up 24/7 channels — infrastructure handled.
youtube_license + youtube_embeddableChoose youtube or creativeCommon license. Set embeddable to false to prevent third-party iframe embedding.
Scheduled upload with thumbnail
Upload unlisted, auto-publish at a set time, custom thumbnail, tagged for discoverability. The post flips from private to public exactly at scheduled_date.
# Schedule a YouTube video with thumbnail
curl -X POST \
https://api.codivupload.com/v1/posts \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"profile_name": "my-channel",
"platforms": ["youtube"],
"post_type": "video",
"description": "Full tutorial: build in 30 min",
"media_urls": ["https://cdn.example.com/tutorial.mp4"],
"scheduled_date": "2026-04-01T14:00:00Z",
"youtube_type": "video",
"youtube_privacy_status": "private",
"youtube_category_id": "28",
"youtube_tags": ["tutorial", "coding"],
"youtube_thumbnail_url": "https://cdn.example.com/thumb.jpg" }'Getting Started with YouTube
Connect your channel and upload your first video in three steps.
Connect your YouTube channel
Open the CodivUpload dashboard, go to Integrations, and click Connect YouTube. You will be redirected to Google's OAuth consent screen. Authorize CodivUpload to upload videos on your behalf. Token refresh is fully automatic — no manual reconnection needed.
BYOP option (optional)
YouTube enforces strict API quota limits. If you upload at high volume, enable BYOP (Bring Your Own Project) in your CodivUpload settings. Paste your own GCP project credentials and CodivUpload routes all YouTube API calls through your dedicated quota — no more shared quota bottlenecks.
Upload your first video
Drop your video into the composer, write a title and description, set privacy to public or unlisted, choose a category, add tags, and attach a custom thumbnail. Hit publish or schedule for a future date. CodivUpload uploads the video via the YouTube Data API and confirms success in real time.
YouTube Content Optimization
Every metadata field matters for discoverability. Here is what to configure and why.
max 100 charactersYouTube truncates titles beyond 100 characters in search results. Front-load the main keyword in the first 60 characters. Avoid all-caps and clickbait — YouTube's algorithm deprioritizes misleading titles. The title is passed in the title field of your API request.
max 5,000 charactersThe first 150 characters appear in search previews, so put the most important information there. Include relevant keywords naturally, add timestamps for longer videos, and place links below the fold. The description doubles as SEO copy for Google web search.
Tags help YouTube understand your video's topic when the title and description are ambiguous. Use 5-8 focused tags. Set the youtube_category_id to the correct number (e.g., 28 for Science & Technology, 22 for People & Blogs, 10 for Music). Correct categorization feeds the recommendation engine.
1280 x 720 JPG/PNGCustom thumbnails have the single biggest impact on click-through rate. Supply a URL via youtube_thumbnail_url and CodivUpload uploads and attaches it automatically. Use high-contrast text, expressive faces, and a consistent brand template for recognizability.
Set youtube_privacy_status to public, private, or unlisted. When combined with scheduled_date, CodivUpload uploads the video as private and flips it to public at the specified timestamp. This gives you time to verify the upload before it goes live.
Organizing videos into playlists increases session watch time, which is a key ranking signal. Playlists auto-play the next video, keeping viewers on your channel longer. When uploading through CodivUpload, you can assign playlists from the dashboard so each new upload is automatically organized.
YouTube API Quota — what you need to know
Google allocates every GCP project a daily YouTube Data API quota (default: 10,000 units). A full publish cycle costs ~250 units (upload 100 + thumbnail 50 + metadata update 50 + playlist 50), meaning ~40 full publishes per day on a single project. But shared across all users, this fills up fast.
CodivUpload solves this with BYOP (Bring Your Own Project). Link your own GCP project in the dashboard settings, and all YouTube API calls route through your dedicated quota. You get full control over your limits and can request a quota increase directly from Google when needed.
YouTube via API
Full control over upload type, privacy, category, and metadata in a single request.
# Upload a YouTube Short with tags and category
curl -X POST \
https://api.codivupload.com/v1/posts \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"profile_name": "my-channel",
"platforms": ["youtube"],
"post_type": "video",
"title": "60-second recipe: garlic butter pasta",
"description": "Quick pasta recipe you can make tonight",
"media_urls": ["https://cdn.example.com/pasta-short.mp4"],
"youtube_type": "shorts",
"youtube_privacy_status": "public",
"youtube_category_id": "26",
"youtube_tags": ["recipe", "pasta", "quick meals"],
"youtube_thumbnail_url": "https://cdn.example.com/pasta-thumb.jpg" }'Set youtube_type to"shorts" for vertical content under 60 seconds, or "video" for standard uploads. The youtube_category_id maps to YouTube's official category list (26 = Howto & Style, 28 = Science & Technology, 22 = People & Blogs). CodivUpload validates the category and tags before submitting, returning a clear error if anything is invalid.
Understand daily quota limits, unit costs per operation, and how to request increases from Google.
Step-by-step: create a GCP project, enable the YouTube API, and link it to CodivUpload.
Set up always-on YouTube live streams with looped playlists and scheduled shows.
Start posting to YouTube for free
2 profiles, 10 uploads/mo on the free plan. Upgrade for unlimited.