Pipeline
How SubCraft works
Subtitle files are text. Parsing them needs no server, no GPU, no account — just a correct parser and a serializer. That is the whole product.
The engine
- Parse — splits the file into blocks, finds each
HH:MM:SS,mmm --> HH:MM:SS,mmmtiming line, and captures the cue text. Handles SRT numbering, VTT headers, NOTE blocks and stray whitespace. - Model — cues become
{ start, end, text }in milliseconds. Everything downstream works on that clean structure. - Transform — convert (re-serialize in another format), shift (offset all timings, clamped at zero), edit (mutate cue text in the table), transcript (strip timings).
- Serialize — back to SRT or VTT with correct separators, ordering and headers.
Why local matters
Subtitle files are small, so upload-based tools feel instant — until you realize every file you "fixed" now lives on someone else's server, including unreleased video captions. SubCraft keeps the file in a FileReader and a string. That is the entire data flow.