Process Video Endpoint

POST /api/process-video

Create a new video-processing task. The server responds immediately with a video_id; processing happens asynchronously.

Request Format

  • Content-Type: multipart/form-data

Parameters

All parameters are optional, but certain combinations are required:

FieldTypeRequiredDefaultNotes
filebinary✖︎nullVideo to process (any common container/codec). Video is not required if video_id of registered avatar from /api/register-avatar is provided.
descriptionstring✖︎nullCaption or prompt that accompanies the video. Provided only if voice_generator is set either to "0" or "1". Not required if voice_generator == "2" and audio is provided.
blur_backgroundbool✖︎trueDisable by sending false
voice_generatorstring 2✖︎"0"Selects the speech-synthesis engine
voice_idstring✖︎"default"Only used when voice_generator == "1"
credential_voice_generatorstring✖︎"default"Optional and valid only when voice_generator == "1"
lip_sync_correctionbool✖︎falseEnables lip-sync enhancement
lip_sync_correction_modelstring lipsync2✖︎"lipsync2"Model name when lip-sync correction is active
eye_contact_correctionbool✖︎falseEnables gaze-alignment correction
video_idstring✖︎nullA string video_id received after registering a video using /api/register-avatar. The video_id is given priority over the uploaded video file so that if both are provided then the video_id will be used to fetch the registered video.
audiobinary✖︎nullAn audio that accompanies the video and description will not be used when audio is provided. Audio can be provided only if voice_generator == "2"

Examples

Example 1: Standard video processing with uploaded file

curl -X POST "https://api.aiframe.ai/api/process-video" \
-H "X-API-Key: YOUR_API_KEY" \
-F file=@"/path/to/video.mov" \
-F "description=Your caption here" \
-F "blur_background=true" \
-F "voice_generator=1" \
-F "voice_id=default" \
-F "credential_voice_generator=default" \
-F "lip_sync_correction=true" \
-F "lip_sync_correction_model=lipsync2" \
-F "eye_contact_correction=true"

Example 2: Using registered avatar (video_id)

curl -X POST "https://api.aiframe.ai/api/process-video" \
-H "X-API-Key: YOUR_API_KEY" \
-F "description=Your caption here" \
-F "blur_background=true" \
-F "voice_generator=1" \
-F "voice_id=default" \
-F "credential_voice_generator=default" \
-F "lip_sync_correction=false" \
-F "lip_sync_correction_model=lipsync2" \
-F "eye_contact_correction=true" \
-F "video_id=YOUR_REGISTERED_VIDEO_ID"

Example 3: Using audio input with registered avatar

curl -X POST "https://api.aiframe.ai/api/process-video" \
-H "X-API-Key: YOUR_API_KEY" \
-F "blur_background=true" \
-F "voice_generator=2" \
-F "voice_id=default" \
-F "credential_voice_generator=default" \
-F "lip_sync_correction=false" \
-F "lip_sync_correction_model=lipsync2" \
-F "eye_contact_correction=true" \
-F "video_id=YOUR_REGISTERED_VIDEO_ID" \
-F audio=@"/path/to/audio.mp3"

For detailed response formats and error codes, please see the API Reference (Swagger).