YouTube video automation API

A YouTube automation API: one call, a video, a Short and the upload

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.

How it works

  1. 1

    Connect the channel

    In the app, connect the YouTube channel to the workspace and set the voice and caption style every video will use.

  2. 2

    Render and upload in one call

    POST /api/v1/videos with autoUpload true, a privacy, and generateShort if you want the vertical cut too.

  3. 3

    Track it

    The video.completed webhook carries the links; GET /api/v1/videos lists recent jobs for your dashboard.

The API call

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" } ]

Chitrio features used

Named as they appear in the product, so you can find each one after you sign in.

  • The API: video inside any product

    An LMS, a CRM or an HR platform sends a topic and gets a finished video back.

  • Shorts from every video

    Make a Short from one idea, or get a vertical Short and free Status cuts from every finished video.

  • Uploads that arrive finished on YouTube

    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.

What people make with it

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.

Shorts alongside long videos

Every long video comes with a vertical Short of up to 60 seconds, ready for the Shorts shelf.

Client channels for agencies

One workspace per client channel, each with its own key, so uploads always land on the right channel.

Regional language channels

Hindi, Tamil, Telugu, Bengali or Marathi videos uploaded to a channel for that audience.

Questions, answered

Which channel does it upload to?

The YouTube channel connected to the workspace that owns the API key. Use a separate workspace and key for each channel.

Can I upload as private first?

Yes. autoUploadPrivacy accepts private, unlisted or public. Private is the safe choice while you integrate.

Is the Short uploaded too?

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.

Can I skip the upload and just get the file?

Yes. Leave autoUpload false and download the MP4 from the download endpoint with your key.

What if I want to stop a job?

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.

Related pages

Automate your first upload

Connect a channel, create a key and send one call with autoUploadPrivacy private.

Create a workspace and a key