Project Videos
Create Project Video
Add a new video to an existing project
POST
This endpoint allows you to add a new video to an existing project. The video will be uploaded to the pipeline for processing.
Path Parameters
string
required
The unique identifier of the project.
Request Body
string
required
Name of the video.
string
required
Type of video processing (e.g.,
dubbing, voiceover, audio_description, transcription, translation, subtitling).string
required
Artifact ID of the source video (must be uploaded beforehand).
string
required
Source language code in ISO 639-1 format (e.g.,
en, ru, de).You can also pass multi to enable multi-language source mode, where the source video contains speech in multiple languages. In this mode, the system will automatically detect the language of each segment.The
multi option must be enabled for your organization by an administrator. Contact your account manager to activate multi-language source support.array
Optional list of source language codes in ISO 639-1 format (e.g.,
["en", "ru", "de"]) to restrict automatic language detection to a known subset.Only allowed when sourceLanguage is multi. Omit the field to detect any supported language. When provided, it must be a non-empty array.array
required
Array of target language codes in BCP 47 format — a combination of an ISO 639-1 language code and an ISO 3166-1 Alpha-2 region code (e.g.,
es-ES, fr-FR, en-US).string
Artifact ID of the background audio (optional).
string
Artifact ID of the international mix audio (optional).
string
Artifact ID of the vocals HITL audio (optional).
string
Additional remarks about the video (optional).
array
Optional array of key-value pairs for storing video metadata. Useful for storing external system references like backlinks, identifiers, or other custom metadata.Each item should be an object with
key and value properties (both strings).Example:string
Optional pivot (intermediate) language code in BCP 47 format (e.g.,
en-US).When set, translation goes through the pivot language first (e.g., ru → en-US → es-ES) instead of translating directly from source to each target language. This can improve translation quality for rare language pairs.Supported for dubbing, voiceover, translation, and subtitling workflow types. Not available for transcription and audio_description.When pivot language is used, original timings are automatically preserved (align step is skipped).object
Pipeline configuration options (all fields optional):
shouldAutomateTranscription(boolean): Automatically transcribe the source videoshouldAutomateTranslation(boolean): Automatically translate the transcriptionshouldAutomateVoiceSelection(boolean): Automatically select voices for speakersvoiceSelectionMode(string): How voices are selected during automation. RequiresshouldAutomateVoiceSelection: true. One of:default— use library voices (default)cloning— use voice cloning (ElevenLabs). All target languages must support cloningemotion_transfer— use emotion transfer. Must be enabled for your organization, and all target languages must support itlabel— use only voices with a specific label. RequiresvoiceSelectionVoicesLabel
voiceSelectionVoicesLabel(string): Voice label name to filter by. Required whenvoiceSelectionModeislabel. The label must exist and have matching voices for all target languages
object
Subtitling parameters per destination language. Used only when
workflowType is subtitling.This is an object where keys are language codes (e.g., ‘en-US’, ‘es-ES’) and values are objects with the following optional fields:maxLinesPerSubtitle(number): Maximum number of lines per subtitle (default: 2, range: 1-5)maxCharsPerLine(number): Maximum number of characters per line (CPL) (default: 30, range: 1-1000)maxCharsPerSecond(number): Maximum reading speed in characters per second (CPS) (default: 20, range: 1-100)minDurationMs(number): Minimum subtitle duration in milliseconds (default: 1000, range: 100-60000)maxDurationMs(number): Maximum subtitle duration in milliseconds (default: 6000, range: 100-60000)
object
Extra translation guidance passed to the translation engine. Optional.
common(string): Guidance applied to all target languages.byLang(object): Per-language guidance. Keys are target language codes (each must be present intargetLanguages), values are strings. The backend mergescommonfirst, then the language-specific prompt.
object
Advanced audio processing and export options applied when the video is rendered. All fields are optional; omit the field entirely to use the defaults.
exportTtsAaf(boolean): Export the synthesized speech in AAF format with separate audio tracks for each speaker (default:false).channelPerSpeaker(boolean, deprecated): Place each speaker in a separate audio channel instead of mixing them into one (default:false). UseexportTtsAafinstead.targetLoudness(number): Final loudness (LUFS) the output is normalized to (default:-23, per the EBU R128 standard).ttsLoudness(number): Loudness (LUFS) of the synthesized speech handed to mixing (default:-23).mixerCrossfadeMs(number): Crossfade duration in milliseconds at speech boundaries — controls how smooth or sharp audio transitions are (default:300).exportWavCodec(string): Audio codec for WAV export. One ofpcm_s16le,pcm_s24le,pcm_s32le,pcm_f32le,pcm_f64le(default:pcm_s16le).exportWavRate(number): Sample rate in Hz for exported WAV files, e.g.44100,48000(default:44100).voiceoverMuffleDb(number): How much (dB) to lower the original audio where synthesis is overlaid in voiceover mode. Higher values make the original quieter (default:9).backgroundMuffleDb(number): How much (dB) to lower the background track in voice-replacement mode. Applied only when a background track is provided (default:7).voiceoverFixVocalsVolume(boolean): Lower the on-screen speech across the whole track (byvoiceoverMuffleDb), not only where synthesis is applied (default:false).voiceoverFixBackgroundVolume(boolean): Keep the background at full volume and lower only the original speech byvoiceoverMuffleDbwhen overlaying synthesis (default:true).transferVoiceLoudness(boolean): Transfer the loudness of the separated original speech onto the synthesized speech, segment by segment (default:false).useBackgroundNorm(boolean): Normalize the loudness of the background track (default:false).
If you automate transcription, you won’t be able to edit the generated transcription in the future. The transcription phase will be skipped, and the result of the AI’s work will be used.
Response
string
Unique identifier of the created video.
string
URL to the created video resource.
string
Name of the video.
string
Status of the video (e.g., ‘new’).
string
Type of the video processing (e.g., ‘dubbing’).
string
Source language code.
array
Array of target language codes.
string | null
Pivot language code, if set.
number
Duration of the video in seconds (if available).
string
Additional remarks about the video (if any).
array | null
Array of key-value pairs containing video metadata, if provided.
object | null
The translation guidance stored for the video (
common and/or byLang), or null if not set.string
ISO timestamp of creation.
string
ISO timestamp of last update.