outputs.
available is true for the first two:
- A file:
urlis an absolute presigned link, valid 1 hour after the read. It needs no key. Read the outputs again for a fresh link.filenameis a suggested name, and the link downloads the file under it. - A rendered subtitle variant:
urlis null andsubtitles_requestholds the parameters to render it. - Not available:
urlis null andunavailable_reasonsays why.
What each kind is
The last column names the plan features an output needs. Without them, it reportsnot_in_plan.
Each subtitle kind is listed twice, once per
format (srt and vtt). An audio project lists only source, dubbed_audio,
voice_track and the subtitle kinds.
Why an output is not available
Is it still current?
outdated says whether the output still matches the project. version names the work that produced it: its job_id, the transcript number and produced_at. job_id is null for work started in the web app or API v2, and number is set only on the dub outputs. The source, the cover and the rendered subtitle variants have no version.
- Dubbed video, audio, voice track and subtitles snapshot: outdated when a segment with target text has
dub_stateoutdatedornot_dubbed, or the transcript or a voice changed since the last dub. - Burned-in subtitle videos: outdated after a later dub.
- On-screen video: outdated after a later dub, or after a later lip-sync when it was rendered over the lip-synced video.
- Localized video: the dub rule, or its final stage’s result is outdated, or a newer run succeeded.
- Lip-synced video: always false, because a later dub removes it. The output then reports
not_produced, and the job’sresult.videokeeps the file. - Rendered subtitle variants: always current.
Subtitles
subtitles_request holds the parameters for getProjectSubtitles, which renders from the current transcript and stores nothing. The file comes back inside
the answer, in content.
Target subtitles leave out segments that have no translation. Segments with unusable times are left out too, and listed in
skipped_segment_ids. Before the project has a transcript, the request answers 409 project_not_ready.
Burned-in subtitles
createExport burns the target subtitles of the last dub (thedubbed_subtitles snapshot) into the video, free of charge. The file appears in the outputs when the export job succeeds: burned_subtitles_video for
source_video: dubbed, lipsync_burned_subtitles_video for source_video: lipsync. Without that video, the request answers 409
project_not_dubbed. One export per source video runs at a time: another
answers 409 export_in_progress, whose job_id names the running export when the API started it.
Clips of single segments
Two places hold a segment’s audio.Segment.audio is the latest clip, replaced by each new take. A SegmentClip in a
segment_generation job’s result is a stable take that nothing overwrites. Both links need
audio_download in the plan; without it they are null.
Archived files
An archived file still gets aurl, but the download answers 403. While a restore runs, every stored file of the project reports
restoring. createFileRestore starts a free file_restore job, which typically takes hours. If nothing is archived, the job
succeeds within moments with files_restored: 0. While one restore runs, another answers 409 restore_in_progress with its job_id.
The whole program
download_outputs.py