Create an Explainer Video
Produce your first AI-powered explainer video in just a few steps. This walkthrough uses the same /content/Create endpoint as podcasts, but switches the payload to outputType: "video" so the service renders motion visuals instead of audio-only narration. Video requests support three formats: explainer, short, and cinematic.
Step 1: Create Content Request
Send a POST request to /content/Create with your preferred resources, set outputType to video, and optionally choose a format:
curl -X POST "https://api.autocontentapi.com/content/Create" \
-H "accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"resources": [
{
"type": "website",
"content": "https://example.com/article-about-ai"
},
{
"type": "youtube",
"content": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
}
],
"outputType": "video",
"format": "explainer",
"text": "Create an engaging explainer about current AI developments"
}'Example Response
Important: Save the request_id โ you'll use it to poll status and download the final video.
Choose a format
Explainer video requests use format to control the output. If you still send the generic duration parameter, it is ignored:
explainer
Balanced default for most product, education, and marketing videos
50
short
Tighter, punchier recaps and shorter social-friendly explainers
50
cinematic
Premium, more polished storytelling treatment
100
If you omit format, the API defaults to explainer. Use style separately when you want to change the visual aesthetic.
The old brief video format name has been replaced by short. Send "format": "short" for a tighter video; unsupported format names are rejected.
The prices in the table are base prices when voice1 and voice2 are omitted. Supplying either voice field adds 200 credits once per video request, including when the ID is a global voice returned by /content/GetVoices rather than a voice cloned by your account.
Set the narration language
Use the exact, case-sensitive value from the supported languages list, for example "language": "Deutsch". The language field controls the requested script and narration language. A voice1 or voice2 ID only selects the sound of the speaker; it does not translate the source or generated script.
For a provider-selected narration voice at the base format price, set language and omit both voice fields.
Optional: Guide titles, descriptions, and visuals
Use these fields to steer how the service names and presents the video:
title
Sets an explicit video title. When present, this overrides the auto-generated title.
titlePrompt
Guides the model when auto-generating the title (e.g., ask for concise, listicle-style, or SEO-friendly phrasing).
descriptionPrompt
Steers the generated video description (tone, call-to-action, hashtags, etc.).
thumbnailImagePrompt
Directs the generated thumbnail artwork.
introImagePrompt
Directs the opening frame artwork.
Add any combination of these to the POST body:
Optional: Choose explicit narration voices
Pass numeric voice IDs when you want to control the speakers. Get them from /content/GetVoices or the Voices catalog. voice2 is optional, but if you include it, you must also include voice1.
Any supplied voice ID activates explicit revoicing and adds 200 credits once to the video request. This applies equally to global catalogue voices and voices cloned by your account; the surcharge is not per voice. Keep language in the request because selecting a voice does not select or translate the narration language.
Optional: Apply your brand via projects
If you have a saved project with brand assets, include the projects array (pass one or more IDs) to place your logo on the generated video and thumbnail:
See the brand logo recipe for more variations. Need a project first? Follow Create a Project (Brand Assets) to save a logo via imageUrl or imageData.
Step 2: Poll for Status
Use the request_id to check the processing status by calling /content/Status/{id}:
While Processing
Status Codes:
0= Pending (queued for processing)5= Processing (generation in progress)100= Completed (video ready!)
Step 3: Get Your Video
When status reaches 100, the payload includes a link to your generated video:
Titles or prompts you set in Step 1 flow into video_title, and image prompts steer image_url/thumbnail assets returned here.
๐ Success! Your explainer video is ready at the video_url, and you can grab the thumbnail from image_url.
List generated explainer videos
Use /video/GetExplainerVideos to list videos created through /content/Create with outputType: "video":
This list is for explainer-video requests. Avatar video shorts created through /video/CreateShorts, /video/CreateShortsFromContent, /video/CreateShortsFromScript, or /video/CreateShortsFromDeepResearch are listed with /video/GetShorts.
Resource Types
You can mix and match resource types just like you would for a podcast:
website
Any web page URL
"https://techcrunch.com/article"
youtube
YouTube video URL
"https://www.youtube.com/watch?v=VIDEO_ID"
text
Direct text content
"Your custom instructions or content"
pdf
PDF document URL
"https://example.com/document.pdf"
Need a specific payload? Check the new Explainer Video Scenario Examples for copy-paste
curlrequests covering languages, formats, styles, and every supported resource type.
Tips for Better Results
Mix resource types โ Combine websites, videos, and text for richer storytelling.
Provide clear instructions โ Use the
textfield to direct the pacing, tone, or call-to-action.Surface thumbnails โ Store the
image_urlfor embedding preview artwork alongside the finished video.Check status regularly โ Processing typically takes 2-5 minutes for most requests;
cinematiccan take longer.Save the request_id โ You'll need it to retrieve your video and any associated transcript.
Error Handling
If something goes wrong, the status response will include error details:
What's Next?
๐จ Pick reusable formats and styles in Explainer Video Scenario Examples
๐งช Explore language-specific snippets in the video code samples
๐๏ธ Add branded voices with Clone a Voice
๐ Need captions? Run the final audio track through Transcribe Audio
๐ฎ Check out Advanced Integrations for automation ideas
โ Have questions? Visit our FAQ
Last updated