Ir para a navegação

transcribe a video for dialogue editing

Starts a word-level transcription of a window of a video, the first step of a dialogue edit. Provide exactly one of sourceVideoUrl or sourceAudioUrl, both hosted in sync. storage (upload via POST /v2/assets/upload). Passing pre-extracted audio skips the server-side download and transcode. Poll GET /v2/transcriptions/{id} until status is COMPLETED, then pass the transcript and your edits to POST /v2/dialogue-edits. An identical source and window returns the existing job instead of starting a new one. An endMs past the end of the source is clamped to it, and the job echoes the effective end in sourceEndMs. Transcription is not billed.

Autenticação

x-api-keystring
Autenticação de chave de API via cabeçalho

Solicitação

This endpoint expects an object.
sourceVideoUrlstringOpcional

URL of the source video, hosted in sync. storage (upload it via POST /v2/assets/upload first). Provide exactly one of sourceVideoUrl or sourceAudioUrl.

sourceAudioUrlstringOpcional

URL of audio already extracted from the source, hosted in sync. storage. Skips the server-side audio extraction. Provide exactly one of sourceVideoUrl or sourceAudioUrl.

startMsintegerOpcional
Start of the window to transcribe, in milliseconds from the start of the source. Defaults to 0. A start at or past the end of the source video returns a 422 naming startMs.
endMsintegerOpcional
End of the window to transcribe, in milliseconds from the start of the source. Omit to transcribe to the end. The window cannot exceed 60 minutes. An end past the end of the source is clamped to it, and the job reports the end it used in sourceEndMs.
maxSourceSecondsintegerOpcional

Refuse the source if it is longer than this many seconds. Useful when a later step, such as a dialogue edit (10 minute window), cannot consume a longer transcript. Cannot exceed the endpoint ceiling of 3600 seconds.

projectIdstringOpcional
Optional id of a project in your organization to file the job under.

Resposta

Transcription job created successfully
idstring

Job id. Poll GET /v2/transcriptions/{id} with it.

statusenum
Job status. COMPLETED and FAILED are terminal.
Valores permitidos:
sourceStartMsinteger
Start of the transcribed window, in source milliseconds.
createdAtdatetime
When the job was created.
sourceVideoUrlstringOpcional
The source video the job was created from. Null for jobs created from sourceAudioUrl.
sourceEndMsintegerOpcional
End of the transcribed window, in source milliseconds. A requested end past the end of the source reads as the source's end when the source could be measured at creation. Null when the job transcribes to the end of the source.
transcriptobjectOpcional

Word-level transcript. Word timings are in milliseconds from the start of the source video, not the window. Null until status is COMPLETED.

speakerCountintegerOpcional

Number of distinct speakers detected. Dialogue edits currently support a single speaker; a count above 1 completes the job but a dialogue edit of that source is unsupported. Null until status is COMPLETED.

difficultyobjectOpcional
Informational estimate of how hard the source is to edit cleanly, with the reasons behind it. Null while the job is running and for some older jobs. Do not gate behaviour on it.
errorobjectOpcional
Why the job failed. Null unless status is FAILED.
startedAtdatetimeOpcional
When the job started processing. Null until it starts.
finishedAtdatetimeOpcional
When the job reached a terminal status. Null until it finishes.
revisionstringOpcional
Content hash of the source and transcript this job produced. Present once the job has a transcript.
estimateobject or nullOpcional
Expected completion time while the transcription is running. Null when the job is terminal or no estimate is available.
retryAfterMsintegerOpcional

Milliseconds to wait before polling this job again, between 1,000 and 5,000. Present only while the job is PENDING or PROCESSING.

Erros

401
Unauthorized Error
402
Payment Required Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error