Daily upload schedules
A cron job sends the day topic each morning and the episode is on the channel as unlisted for a final look.
YouTube video automation API
Publishing to YouTube from code usually means two systems: one that makes the video and one that uploads it. With the Chitrio API they are one call. Connect the YouTube channel to the workspace once in the app; after that, POST /api/v1/videos with autoUpload true renders the video, cuts an optional 9:16 Short with captions, and uploads it to that channel with the privacy you choose. Your system hears about it through a signed webhook. For channels that publish every day, that is the difference between a pipeline you maintain and a single request per episode. Start with private uploads while you integrate, check a few videos by eye, then switch to unlisted or public.
Free trial to start · the cost is shown before every render
Straight answer: autoUpload publishes to a real channel, and the default privacy is public, so send autoUploadPrivacy "private" or "unlisted" until you mean to publish. Uploads use the channel connected to the workspace behind the key.
In the app, connect the YouTube channel to the workspace and set the voice and caption style every video will use.
POST /api/v1/videos with autoUpload true, a privacy, and generateShort if you want the vertical cut too.
The video.completed webhook carries the links; GET /api/v1/videos lists recent jobs for your dashboard.
Real endpoints and fields. The full reference, with Node.js and Python examples, is on the developers page.
Request: render and upload
curl -X POST https://chitrio.com/api/v1/videos \
-H "X-Api-Key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"topic":"5 habits that quietly build wealth","durationInMinutes":5,"language":"en","tone":"inspirational","generateShort":true,"autoUpload":true,"autoUploadPrivacy":"unlisted"}'Response
HTTP/1.1 202 Accepted
{ "jobId": "3f1c9a0e-...", "status": "Processing", "title": "5 Habits That Quietly Build Wealth" }Recent jobs
curl "https://chitrio.com/api/v1/videos?limit=5" -H "X-Api-Key: YOUR_API_KEY"
[ { "jobId": "3f1c9a0e-...", "topic": "5 habits that quietly build wealth", "status": "Completed",
"progress": 100, "createdAtUtc": "2026-11-11T05:30:12Z", "updatedAtUtc": "2026-11-11T05:37:40Z" } ]Named as they appear in the product, so you can find each one after you sign in.
An LMS, a CRM or an HR platform sends a topic and gets a finished video back.
Make a Short from one idea, or get a vertical Short and free Status cuts from every finished video.
Every video and Short goes to YouTube ready to publish: a search-friendly title, a description with timestamps, your call to action and disclaimer, tags and hashtags, the right language and category, a first comment, and your playlist. Set your defaults once in Settings.
A cron job sends the day topic each morning and the episode is on the channel as unlisted for a final look.
Every long video comes with a vertical Short of up to 60 seconds, ready for the Shorts shelf.
One workspace per client channel, each with its own key, so uploads always land on the right channel.
Hindi, Tamil, Telugu, Bengali or Marathi videos uploaded to a channel for that audience.
The YouTube channel connected to the workspace that owns the API key. Use a separate workspace and key for each channel.
Yes. autoUploadPrivacy accepts private, unlisted or public. Private is the safe choice while you integrate.
It can be. Turn on "Also upload the Short" in the workspace YouTube defaults and the Short goes up with its own title and a link to the full video. Either way it can be downloaded with ?variant=short.
Yes. Leave autoUpload false and download the MP4 from the download endpoint with your key.
POST /api/v1/videos/{jobId}/cancel stops a job that is still processing and returns the credits taken for it. A cancelled job sends no webhook.
Connect a channel, create a key and send one call with autoUploadPrivacy private.
Create a workspace and a key