Skip to main content

Process Video

POST /v1/videos/process

Upload a video and run multiple operations in a single request. The endpoint creates the video, analyzes it, and chains any additional steps you request — voiceover, help article, export, and translation.

Business plan required

The /process endpoint is available on Business plans and above.

Request body

ParameterTypeRequiredDescription
urlstringYesPublic URL of the video file
namestringNoDisplay name for the video
contextstringNoContext about the video content
companyContextstringNoCompany or brand context
languagestringNoPrimary language code (e.g. en, de)
tonestringNoDesired tone for analysis
voiceIdstringNoVoice ID for voiceover (required if voiceover is enabled)
generateobjectNoWhich operations to run (see below)
exportSettingsobjectNoExport configuration

generate object

FieldTypeDefaultDescription
analysisbooleantrueAlways runs first — generates subtitles and metadata
voiceoverbooleanfalseGenerate AI voiceover from subtitles
helpArticlebooleanfalseGenerate a step-by-step help article
exportbooleanfalseExport the final video with subtitles
translationobjectTranslation configuration
translation.enabledbooleanfalseEnable translation
translation.languagesstring[][]Target language codes (e.g. ["es", "fr"])

Pipeline order

Steps execute sequentially in this order (only requested steps run):

  1. Analysis — always first
  2. Voiceover — requires subtitles from analysis
  3. Help article — generated from transcript (synchronous)
  4. Export — produces final video
  5. Translation — runs last, languages process in parallel

Example

curl -X POST https://api.vidocu.ai/v1/videos/process \
-H "Authorization: Bearer vdo_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/demo.mp4",
"name": "Product Demo",
"context": "SaaS onboarding walkthrough",
"language": "en",
"generate": {
"analysis": true,
"voiceover": true,
"export": true,
"helpArticle": true,
"translation": {
"enabled": true,
"languages": ["es", "fr"]
}
},
"voiceId": "EXAVITQu4vr4xnSDxMaL"
}'

Response 202 Accepted

{
"jobId": "process_1708300000000_abc1234",
"videoId": "vid_1708300000000_xyz5678",
"status": "processing",
"steps": ["analysis", "voiceover", "helpArticle", "export", "translation"]
}

Polling for completion

Use the Jobs endpoint to poll the process job:

curl https://api.vidocu.ai/v1/jobs/process_1708300000000_abc1234 \
-H "Authorization: Bearer vdo_live_your_key_here"

In-progress response

{
"jobId": "process_1708300000000_abc1234",
"type": "process",
"status": "processing",
"result": {
"completedSteps": ["analysis", "voiceover"],
"currentStep": "helpArticle"
}
}

Completed response

{
"jobId": "process_1708300000000_abc1234",
"type": "process",
"status": "completed",
"result": {
"completedSteps": ["analysis", "voiceover", "helpArticle", "export", "translation"],
"videoId": "vid_1708300000000_xyz5678",
"exportedVideoUrl": "https://storage.vidocu.ai/...",
"exportedSrtUrl": "https://storage.vidocu.ai/...",
"exportedVoiceoverUrl": "https://storage.vidocu.ai/..."
}
}

Or set up webhooks to receive a process.completed event when the full pipeline finishes.

Webhook events

EventFires when
process.completedAll requested steps finished successfully
process.failedAny step in the pipeline failed

Individual step webhooks (video.analyzed, export.completed, etc.) also fire as each step completes.

Errors

StatusCodeCause
400validation_errorInvalid request body, missing voiceId when voiceover enabled, etc.
401authentication_errorInvalid or missing API key
403limit_exceededPlan does not include /process, or a requested feature requires a higher plan

Quota consumption

Each step consumes video minutes independently:

StepCost
Analysis1 min per video min
Voiceover1 min per video min
Export1 min per video min
Help article2 min flat
Translation1 min per video min, per language

For a 5-minute video with all features and 2 translation languages: 5 + 5 + 5 + 2 + (5 × 2) = 27 minutes.