How to Add Bilingual Captions With Codex and ChatCut

How to Add Bilingual Captions With Codex and ChatCut

Aident AI

One cobalt ribbon passes through an amber aperture and becomes aligned coral and jade bands.

How to Add Bilingual Captions With Codex and ChatCut

To add editable bilingual captions with Codex, keep the video in a ChatCut project, enable captions from the audible timeline sources, translate the caption program into the target language, and verify the source and translated lines before exporting. Do not burn the text into the video during the editing pass. ChatCut keeps the caption cards, source transcript, translation, timing, style, and layout available for correction.

This workflow starts with an existing ChatCut project that already contains the intended video. It uses Aident Loadout to let Codex discover the current ChatCut Actions, target the exact project, translate captions, inspect the result, and export an SRT without exposing a ChatCut credential to the agent.

Choose the Caption Deliverable First

"Bilingual captions" can mean three different outputs:

Deliverable

What viewers see

What remains editable

ChatCut caption program

Original and translated lines inside the project

Text, timing, sources, style, and layout

SRT sidecar

One selected caption language loaded by a player or editor

Cue text and timing

Burned-in video

Captions permanently visible in every frame

Only the saved project or source SRT, not the exported pixels

Use the ChatCut caption program as the working master. Export an SRT for review, accessibility, or another editor. Create a burned-in copy only when the delivery channel requires permanent captions, and preserve the editable project and SRT.

Define a Verifiable Result

Before Codex changes the project, write down the acceptance test. A useful bilingual-caption result requires:

  • the intended original-language source and one target language;

  • complete translation coverage for the active caption cues;

  • names, numbers, product terms, and calls to action checked against the audio;

  • no overlapping, empty, clipped, or visibly stale caption cards;

  • both lines readable in sampled frames at the target aspect ratio;

  • a downloaded target-language SRT that opens and contains the reviewed cues; and

  • no cloud video render or destructive caption reset unless you approved it.

Translation coverage is not translation quality. A complete automated result still needs a fluent speaker to review consequential wording.

1. Set Up Aident Loadout

Give Codex the canonical setup instruction:

Follow https://aident.ai/SETUP.md

Then check the installed public CLI and connected services:

aident account auth status
aident vault vault --action status

ChatCut requires a connected ChatCut account. Complete any connection flow in the browser. Do not paste provider credentials, browser cookies, signed media URLs, or private video contents into the prompt or repository.

2. Discover the Current ChatCut Actions

Search by job instead of copying stale identifiers:

aident capabilities search \
  --targetEnv staging \
  --query "ChatCut list projects target project captions translate preview export subtitles" \
  --type action \
  --limit 20

Inspect the exact matching Actions before use:

aident capabilities get "<exact ChatCut Action name>" \
  --targetEnv staging

On August 19, 2026, the live catalog exposed project discovery and targeting, read_project, edit_captions, read_captions, preview_timeline, and submit_export. The edit_captions Action required an action field and accepted project-scoped JSON. Its user-facing translate operation created or refreshed the translation and switched caption visibility in one call. Catalog names and contracts can change, so the current discovery result remains authoritative.

3. Target the Existing Project Without Editing It

Ask Codex to list the available ChatCut projects and stop for your choice:

Use Aident Loadout's current ChatCut Actions. List my accessible projects, show only project names, IDs, and editor URLs, and ask me which project to target. After I choose, target that exact project and read its project map. Do not create, duplicate, delete, render, upload, or edit anything yet.

Expected result: Codex reports the selected project ID, active timeline, dimensions, frame rate, and source-asset counts. Open the returned editor URL and confirm that it is the intended cut.

If the video is not already in the project, import it through ChatCut's editor or the current import workflow after reviewing the upload boundary. Uploading private media is consequential and should never be inferred from a filename alone.

4. Enable Captions From the Audible Timeline

Ask Codex to enable captions without narrowing the source prematurely:

On the selected ChatCut project, enable captions from every audible timeline source using the current default plain style. Do not reset existing captions. If transcription is not ready, report the asset ID and current status, then stop with the recommended check-back interval

The current caption contract resolves audible timeline tracks into explicit sources. That is safer than assuming all speech lives on V1 or A1. If transcription is still running, use the returned status and wait guidance. Do not repeatedly poll or restart transcription.

Read the captions after they become ready. Record the caption revision, source language, card count, and any incomplete or stale state before translating.

5. Translate Into the Target Language

State the source language, target language, and display order explicitly. For example:

Translate the active English caption program to Spanish. Keep both the English original and Spanish translation visible, with the original line first. Translate only missing or stale cues. Do not force regeneration, reset captions, change the timeline, or start an export

The current edit_captions contract represents that request as a translate operation with a target language, bilingual mode, and primary source. The target language is the translation target, never the original language. A representative operation is:

{
  "action": "translate",
  "json": "{\"languageCode\":\"es\",\"mode\":\"bilingual\",\"primary\":\"original\"}"
}

Use the actual project ID when the session is not already targeted. Add force or regenerate only when you explicitly want to discard and recreate the existing translation. A normal update should translate only missing or stale cues.

Expected result: the same caption program shows the original and translated sources with complete cue coverage. If the result supplies an exact repair action for incomplete coverage, run that repair once without forcing a full retranslation, then read the captions again.

6. Review Text, Timing, and Layout

Ask Codex to read the full caption text and report exceptions rather than declaring the translation correct:

Read the bilingual caption cards from the selected project. Report incomplete coverage, empty cards, overlapping timing, unusually long lines, source/translation order, and every occurrence of the names and numbers I provide. Do not rewrite any card until I approve the exact replacement

Review at least these boundaries:

  1. the first spoken cue;

  2. a name, number, or specialized term;

  3. the longest visible caption;

  4. a fast cut or speaker change; and

  5. the final spoken cue.

Then preview exact frames around those cues. ChatCut's current timeline preview can return timeline structure, composed viewer frames, and transcript context. Render metadata is not visual verification; inspect the returned images. Check safe-area placement, line order, contrast, clipping, and whether the two languages obscure important content.

Correct source-transcript errors separately from viewer-facing translation. A source fix changes transcript truth. A caption translation or card-text edit changes what the viewer sees. Keeping those operations separate prevents a translation correction from silently rewriting the transcript.

7. Export the Target-Language SRT Before Rendering Video

Record the current bilingual source order, scope the captions to the reviewed translation for the subtitle export, then restore the bilingual view afterward:

Preserve the current bilingual caption source configuration. Switch the selected caption program to the reviewed Spanish translation only, without forcing regeneration. Export it as an SRT named product-demo-es.srt. Do not start a video or audio render. Restore the exact bilingual configuration after the subtitle export, read the captions again, and return the download URL plus the restored source order

On August 19, 2026, submit_export accepted format: "subtitles" and subtitleFormat: "srt". Subtitle exports completed synchronously, while video and audio exports started durable cloud renders. When the caption program was scoped to a translation, ChatCut's public export contract described the subtitle output as that translated text. Do not assume that a stacked bilingual view automatically becomes a two-line bilingual SRT. Review the current schema and export contract before every call.

Download the SRT and verify:

  • cue numbers are ordered;

  • timestamps increase and do not overlap unexpectedly;

  • the selected target-language text uses UTF-8 correctly;

  • the first and final reviewed cues are present; and

  • the file opens in the intended player or editor.

Read the ChatCut caption program once more and confirm that the bilingual source order is restored. The project remains the bilingual editable master; the exported SRT is the selected target-language deliverable.

If you also need an MP4, request it as a separate approved step. Cloud rendering can spend ChatCut credits and must not be bundled into an otherwise read-only review. Track a submitted render by its returned ID instead of submitting a duplicate when the CLI appears quiet.

Common Failure Modes

Symptom

Likely boundary

Safe next step

Wrong project or cut appears

Session targets a different project or active timeline

List projects, target the exact ID, and read the project map again

Captions never become ready

Source transcription is pending or failed

Read one transcription status and follow its check-back guidance

Only the translation is visible

Translation-only mode was selected

Switch to bilingual mode without resetting the caption program

Languages appear in the wrong order

primary or source order does not match the request

Read the source list, then update the explicit order

Some cues remain untranslated

Translation coverage is incomplete or stale

Run the returned repair action once without forced regeneration

Text is correct but clips off-screen

Caption layout does not fit the aspect ratio

Preview exact frames and adjust the caption or source layout

A reset removes reviewed edits

Destructive reset was used for an ordinary correction

Restore from project history or backup; require confirmation before reset

Export seems stalled

A video render was started instead of a subtitle export

Inspect the returned format and render ID before retrying

Why Use ChatCut Instead of Burning an SRT Immediately?

An FFmpeg subtitle burn is appropriate when you already have an approved SRT and need permanent pixels. It is not the best first step when the transcript, translation, timing, or visual layout still needs review. ChatCut keeps those parts attached to an editable timeline and gives Codex structured read, translate, preview, and export boundaries.

When the SRT is approved and the delivery channel requires permanent captions, continue with How to Burn SRT Subtitles Into Video With Codex and FFmpeg. That separate canonical owns the final hard-subtitle render.

Give Codex One Bounded Caption Task

Open Aident Loadout, connect ChatCut, and ask Codex to discover the current ChatCut Actions, target one existing project, enable captions from the audible timeline, translate missing or stale cues into one target language, stop for review, preview the selected caption frames, and export one SRT. Success means the project still contains editable bilingual captions, translation coverage is complete, sampled frames pass review, and the SRT downloads without a video render, destructive reset, duplicate job, or exposed provider credential.

Sources

Refresh this guide when ChatCut changes caption sources, translation coverage, Card editing, project targeting, preview, SRT export, or cloud-render behavior, or when Aident changes capability discovery, connection, pricing, acknowledgement, or audit contracts.

Home

Home

Home

Integrations

Integrations

Integrations

Vault

Vault

Vault

Audit

Audit

Audit

Arana Grande

Arana Grande

Arana Grande

Free

Free

Free

30-day audit summary

30-day audit summary

30-day audit summary

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

Daily action-call volume and the latest receipts from the Loadout audit trail.

View Audit

View Audit

View Audit

Loadout usage

Loadout usage

Loadout usage

617 action calls in the last 30 days

617 action calls in the last 30 days

617 action calls in the last 30 days

May 19 - Jun 17

May 19 - Jun 17

May 19 - Jun 17

10 active days

10 active days

10 active days

Less

Less

Less

More

More

More

Recent activity

Recent activity

Recent activity

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Latest action-call receipts from connected agents

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Apr 23, 09:23 AM

Shopify

Shopify

Shopify

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Creates Or Updates An Asset For A Theme

Success

Success

Success

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Apr 23, 09:21 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Success

Success

Success

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Apr 23, 08:53 AM

Shopify

Shopify

Shopify

Update Products Param Product Id

Update Products Param Product Id

Update Products Param Product Id

Failed

Failed

Failed

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Apr 22, 22:13 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Apr 22, 22:12 PM

Shopify

Shopify

Shopify

Create Product Image

Create Product Image

Create Product Image

Success

Success

Success

Connected integration coverage

Connected integration coverage

Connected integration coverage

162

162

162

of 753 accessible connected

of 753 accessible connected

of 753 accessible connected

Callable actions

Callable actions

Callable actions

1,126

1,126

1,126

Vault credentials

Vault credentials

Vault credentials

8

8

8

Explore what's possible

Explore what's possible

Explore what's possible

See all Integrations

See all Integrations

See all Integrations

Google Ads

Google Ads

Google Ads

All available Goolge Ads tools via...

All available Goolge Ads tools via...

All available Goolge Ads tools via...

X (twitter)

X (twitter)

X (twitter)

All available X tools via...

All available X tools via...

All available X tools via...

Github

Github

Github

All available Github tools via...

All available Github tools via...

All available Github tools via...

Notion

Notion

Notion

All available Notion tools via...

All available Notion tools via...

All available Notion tools via...

Slack

Slack

Slack

All available Slack tools via...

All available Slack tools via...

All available Slack tools via...

Firecrawl

Firecrawl

Firecrawl

All available Firecrawl tools via...

All available Firecrawl tools via...

All available Firecrawl tools via...

753 integrations are available for loadouts.

753 integrations are available for loadouts.

753 integrations are available for loadouts.

The one tool

for every tool

your agent needs.

Give any AI agent real capabilities in seconds. Connect 27,000+ tools once, skip the setup headache, and let your agents execute.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.

Try Aident Loadout

Empower your Codex or OpenClaws to get real jobs done. Connect 27,000+ tools in one prompt, and let your agents deliver real results.