Edit SRT, VTT, ASS and simple TTML subtitles locally
Give a caption file a careful handoff. The local workbench keeps timing and text editable while showing what source styling and metadata will not survive.
Subtitle Workbench
The example includes an overlap, styled text and a fast caption so you can try editing and review the loss notice.
Supported scope: UTF-8 input up to 2 MiB and 5,000 cues; times below 100 hours. SRT, WebVTT, ASS/SSA dialogue and simple TTML media-clock/seconds/milliseconds input. TTML ancestor/span timing, frame/tick timing, ASS drawings and segmented VTT timestamp maps are rejected. No broadcast SCC/EBU-STL, OCR, transcription, translation, waveform, burn-in or style-preserving export. Optional local media up to 512 MiB uses browser codecs.
Caption source
Required fields are marked with an asterisk.
Caption editor
Review your output, then save it to your device.
Make the next step clear.
Your findings, assumptions and next steps will appear here after you run the check.
Subtitle Workbench · https://subtitles.kitforma.com/ · KitForma
Cue edit, split, merge and 25-step undo
Local media timing preview
Visible plain-text conversion losses
Understand the evidence.
Focused guides explain the rules, the edge cases and the checks worth doing before you act.
Edit subtitle timing against local video
Review cue text and timing without uploading either file.
Read the guide ↗Field guide / 02Understand subtitle conversion losses before export
Separate reusable caption text from layout, styling and broadcast timing.
Read the guide ↗Field guide / 03Review reading speed, line length and overlaps
Use objective checks as prompts for a human caption review.
Read the guide ↗Before you start
Which formats can I import and export?
Import UTF-8 SRT, WebVTT, ASS/SSA dialogue and simple TTML with cue-level media-clock, second or millisecond timing. Export plain-text SRT, WebVTT, simple TTML, CSV and a transcript. Rich ASS/TTML styles are not reproduced.
Does the tool upload my video or subtitle?
No. Subtitle processing runs locally and optional media uses a temporary browser object URL. Closing or resetting the page discards the editing session. Downloads may contain sensitive caption text; review them before sharing.
Can I fix timing while watching the video?
Yes. Load compatible local media, select a cue, seek to its start and use the playhead as a proposed start or end. Apply the edit to commit it. A global millisecond shift is also available; edits that produce negative times or nonpositive durations are rejected.
Are overlaps always mistakes?
No. Multiple speakers, translated on-screen text or other intentional captions can overlap. The tool flags them for review instead of deleting or automatically shortening them. Reading-speed and line-length checks are also guidelines, not a guarantee of platform acceptance.
What happens to subtitle styling?
The editor uses plain text. WebVTT settings and markup, ASS style/effect/layer information, and TTML regions/styling are reported as conversion losses. You must acknowledge detected losses before exporting. The untouched original text remains downloadable.
Why was my TTML or ASS file rejected?
Timed spans, inherited TTML timing, frame/tick timing, sequential containers and ASS drawings need a richer rendering model. They are rejected rather than silently mistimed. Flatten or export a supported plain caption format in the source application first.
Sources & assumptions
Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.
- WebVTT specification ↗
Cue timing, identifiers, text markup and settings have distinct semantics.
- Timed Text Markup Language ↗
TTML includes rich styling and timing constructs; this tool supports an explicit plain-text subset.
- SubRip format description ↗
SRT uses numbered timed text blocks and has variable formatting conventions.
- ASS subtitle format ↗
ASS override tags carry styling and positioning that plain-text exports omit.
Reviewed 2026-10-19. Read our methodology or report an issue.