AI Narration

A Narration artifact (txt_…) is produced by a root ai_narration job from a source video — no transcription is required. The record includes timed script segments and a presigned URL for the narrated output video.

Create a job with POST /v1/jobs (serviceType: ai_narration, sourceType: s3_direct or s3_presigned). Poll until status: completed, then use resultSummary.textSourceId from GET /v1/jobs/:jobId to retrieve the narration id, then fetch the full artifact below.

Downstream services (translation, clips, thumbnails, metadata, summarization, indexer) accept input.textSourceId when referencing a completed text source.

The Narration object

textSourceIdstring
Text source identifier (txt_…).
jobIdstring
Parent ai_narration job (job_…).
segmentsarray
Timed narration script segments (id, start, end, text).
textstring
Full script text (segments joined).
textPreviewstring
Truncated preview for lists.
segmentCountinteger
Number of narrated segments.
voicestring
TTS voice used for the output.
videoTypestring
Detected or user-selected video category.
outputVideoKeystring
S3 key of the narrated output video.
videoUrlstring
Presigned GET URL for the output video (detail view).

Retrieve a narration

GET/v1/narrations/{narrationId}
Returns one Narration by its narrationId.

Requires permission

narration:read

Parameters

narrationIdstring
Narration identifier (txt_…).

Returns

Returns a Narration object.

See the the narration object for attribute details.

List narrations

GET/v1/narrations
Paginated list items with preview fields and job metadata — not full text or segments.

Requires permission

narration:list

List item fields: textSourceId, jobId, workspaceId, projectId, textPreview, segmentCount, voice, videoType, jobStatus, jobInput, jobCompletedAt, createdAt.

Query parameters

pageinteger, optional
Default 1.
limitinteger, optional
Default 20, max 100.

Returns

data array of list items (see example); metadata.pagination.

See the the narration object for attribute details.