OpenCut/apps/web
kcfancher e3d4f3fa92
Add support for basic SRT subtitle import to Captions panel (#756)
* Add SRT subtitle import to the captions panel

[Modified from 0bd641b4102c827ef8d218ada099229f73396077, 2026-03-28 08:46:23 -0400]

Parse .srt files into chunks and insert them as text elements on a new text track using the existing caption styling defaults. Displays a warning when malformed cues are skipped during import.

* Batch caption text insertion

[Modified from eece3bbc5f0578a24a4f90f0ab87fe5ca37e94e9, 2026-03-28 09:13:18 -0400]

Batch caption insertion in a BatchCommand so that undo will batch undo all subtitle insertion from either srt file or ai transcriptions.

* Move subtitle parsing into a shared interface

[Modified from e84404b7857f8c611eda7a65b5d61ee6c9823d75, 2026-03-28 09:52:31 -0400]

Extracted the srt specific extraction behind a generic shared interface to allow easier adding of other subtitle formats in the future.

* Apply better default styling for subtitles.

[Modified from b5deec4285f99873ba5bf57971f7bcab26e8c743, 2026-03-31 11:49:34 -0400]

Shrink font size, aim to layout 5% above bottom, keep subtitle width 80% of video, wrap text on new lines if too long.

* Update Captions Panel UI

Split captions panel into Generate and Import tabs as they are two different approaches for adding captions.

* Add biome formatting fixes

* Add .ass subtitle import support

Extend subtitle import to accept .ass files alongside .srt, map supported .ass styles onto imported text elements, and display warnings when unsupported .ass features are skipped.

* Change “Import subtitles” button style

* refactor: review fixes

* fix: convert subtitle times from seconds to ticks

* refactor: replace captions tab switcher with import action button

---------

Co-authored-by: Maze Winther <mazewinther@gmail.com>
2026-04-14 03:19:12 +02:00
..
content/changelog changelog: publish 0.3.0 2026-04-14 00:50:18 +02:00
migrations chore: normalize line endings 2026-03-29 15:56:48 +02:00
public chore: remove accidentally committed Zone.Identifier stream 2026-03-29 18:25:43 +02:00
scripts chore: normalize line endings 2026-03-29 15:56:48 +02:00
src Add support for basic SRT subtitle import to Captions panel (#756) 2026-04-14 03:19:12 +02:00
.env.example chore: remove transcription envs 2026-04-04 08:53:10 +02:00
.gitignore chore: update .gitignore 2026-03-29 18:55:56 +02:00
Dockerfile chore: remove transcription envs 2026-04-04 08:53:10 +02:00
components.json chore: normalize line endings 2026-03-29 15:56:48 +02:00
content-collections.ts feat: add published status to changelog entries 2026-03-29 15:58:46 +02:00
drizzle.config.ts chore: remove comment 2026-04-05 19:04:39 +02:00
next.config.ts feat: migrate GPU renderer from WebGL to wgpu/WASM 2026-04-01 13:57:32 +02:00
open-next.config.ts chore: add missing open-next config 2026-03-29 15:58:46 +02:00
package.json fix: use published opencut-wasm package 2026-04-13 05:08:29 +02:00
postcss.config.mjs feat: masks, properties refactor, shaders, storage migrations, and more 2026-03-29 15:48:22 +02:00
tsconfig.json chore: normalize line endings 2026-03-29 15:56:48 +02:00
wrangler.jsonc chore: normalize line endings 2026-03-29 15:56:48 +02:00