
Subtitle Timing & Drift Toolkit
Subtitle Timing & Drift Toolkit
Fix subtitle timing precisely without AI guessing.
Subtitle Timing & Drift Toolkit is a deterministic, local utility for correcting timing problems in SRT subtitle files. It supports three focused operations: fixed timeline offsets, explicit FPS conversion, and two-anchor linear drift correction.
What it can do
Global Offset
Shift the entire subtitle timeline forward or backward by an exact number of milliseconds.
Useful when every subtitle appears consistently too early or too late.
FPS Conversion
Rescale subtitle timing using an explicitly provided source FPS and target FPS.
Useful when subtitle timing was prepared for a different frame rate.
Common decimal frame rates such as 23.976 and 29.97 are supported as literal values. The tool does not automatically detect or reinterpret frame rates.
Two-Anchor Drift Correction
Correct progressive timing drift using two known source → target timing anchors.
The calculated linear correction is applied to the entire subtitle timeline, including timestamps outside the two anchors.
Designed to fail safely
The toolkit validates the subtitle before producing corrected output.
It rejects unsafe or ambiguous results instead of silently guessing or repairing them.
Checks include:
- malformed SRT
- invalid timestamps
- negative resulting timestamps
- zero or reversed cue durations
- invalid cue ordering
- overlapping cues
- invalid or non-finite timing parameters
- unsafe FPS values
- invalid drift anchors
- unsafe output collisions
If processing fails, no corrected SRT is produced.
Deterministic output
The same valid SRT and the same parameters produce the same normalized SRT and JSON report.
No AI model, language detection, speech recognition, or automatic synchronization is involved.
Output
Each successful operation produces:
- a normalized UTF-8 SRT file
- a structured JSON report
The report records the operation, parameters, cue counts, changed cues, output status, and stable error information when applicable.
Local execution
The downloaded Skill runs locally using its packaged runtime.
No npm install is required.
Target runtime: Node.js 22.22.2 or later.
Release validation for v1.0.0 was performed on Windows with Node.js 24.14.0. Node.js 22, macOS, and Linux have not been independently validated for this release.
Important limitations
- SRT input only
- one subtitle file per operation
- strict SRT syntax
- overlapping cues are rejected
- no automatic subtitle synchronization
- no audio or speech alignment
- no automatic FPS detection
- no translation or language detection
- no ASS/SSA support
- no batch processing
- no repair mode
- drift correction extrapolates outside the supplied anchors
- 23.976 and 29.97 are treated as literal decimal FPS values, not automatically converted to rational or drop-frame representations
Best for
- subtitles that are consistently early or late
- subtitles created for the wrong frame rate
- subtitles that gradually drift out of sync
- workflows where deterministic, reviewable timing correction is preferred over automatic AI guessing


