Timed Text Tools

Your subtitles are wrong. You know it. We know it. Your audience definitely knows it.

Every converter on the internet rounds your timestamps to the nearest millisecond and calls it close enough. We convert through frame numbers at the correct framerate because close enough is still wrong.

Why This Exists

Because millisecond math is not frame math.

Subtitle files store timestamps in milliseconds. Video plays back in frames. The conversion between them depends on the framerate — and most tools get it wrong. We built this because we kept finding the same off-by-one-frame errors in files from every major vendor.

Frame-Accurate

Every operation converts to frame numbers first, computes in integer frame space, then converts back. No floating-point drift. No millisecond rounding.

Framerate-Aware

Your 29.97 drop-frame subtitles are not the same as your 25fps PAL subtitles. We know that. Every tool on this site knows that.

Client-Side

Your files never leave your browser. No uploads, no server, no "processing your request." Paste it, fix it, export it.

FAQ

The questions people ask right before they discover their current tool is lying.

What subtitle formats does timecode.dev support?

timecode.dev parses SRT, VTT, SBV, ASS, SAMI, IMSC, FCPXML, EBU-STL, and SCC. It exports to all of those plus DFXP, CSV, JSON, TXT, and Graphics STL.

Why do subtitles drift after conversion?

Most converters do floating-point math in milliseconds and round repeatedly. timecode.dev resolves timestamps into frame numbers at the correct framerate first, performs the work in integer frame space, then exports back out.

Is processing private?

Yes. The current subtitle workflow runs in the browser, so your source files stay on your machine while you parse, transform, validate, and export them.