Skip to main content
PUT
/
v1
/
projects
/
{projectId}
/
recordings
/
{recordingId}
/
subtitles
curl --request PUT \ --url https://api.studio.us.phrase.com/v1/projects/{projectId}/recordings/{recordingId}/subtitles \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <api-key>' \ --data ' { "language": "en", "source": true, "dubbing": false, "enqueueTtsUpdate": false, "subtitles": [ { "id": "seg-1", "key": "seg-1_en_true_false", "time_begin": 0, "time_end": 1.8, "speaker": "speaker_1", "language": "en", "text": "Hello and welcome.", "words": [] } ] } '

Authorizations

X-API-Key
string
header
required

Path Parameters

projectId
string<uuid>
required

Project ID

recordingId
string<uuid>
required

Recording ID

Body

application/json
language
string
required

BCP-47 language code of the track to write

subtitles
object[]
required

Full segment list for the target language track. The endpoint performs a bulk replace, so the array must contain every segment in the final state, not just the edited ones.

source
boolean
default:false

True when writing the source (transcript) track

dubbing
boolean
default:false

True when writing a dubbing track

bgVolume
number

Dubbing background-audio volume (only honored for dubbing tracks)

speakerVolumes
object

Per-speaker volume overrides (dubbing only)

speakerVoiceSettings
object

Per-speaker TTS voice settings (dubbing only)

segmentsToRedub
string[]

Segment ids that should be re-synthesized after this update

enqueueTtsUpdate
boolean
default:true

When true (default), changed dubbing segments are queued for TTS regeneration. Set to false for text-only edits to avoid expensive re-synthesis.

Response

Subtitles updated successfully