# Subtitle Tools Edit, validate, synchronize, compare, and convert subtitle files locally in the browser. Subtitle Tools is an independently versioned application in the [add·ideas Toolbox](https://git.add-ideas.de/lotobo/toolbox-portal). ## Version 0.2 scope - Bounded SRT, WebVTT, ASS/SSA and flat-profile TTML/DFXP parsing - Cue timeline, add/duplicate/split/merge/delete operations, direct text/timestamp editing, cue text transforms and configurable diagnostics for overlaps, order, duration, reading speed, line count and line length - Shift and anchor-based stretch operations, negative-time protection, source/target frame-rate conversion and frame-grid snapping - SRT, WebVTT, ASS and safe flat TTML serialization with format-specific preservation where possible and a visible cross-format loss warning - Deterministic index-aligned revision comparison - Immediate browser-native audio/video playback while cancellable, worker-based waveform peak extraction continues; failed or stale jobs retain the last valid waveform; the scrollable waveform provides zoom, cue selection, previous/next navigation and a live playhead - UTF-8, UTF-16 LE/BE and ISO-8859-1 file decoding All source, media and generated output stays in the current browser. The app makes no external request. Validation is configurable editorial guidance, not a broadcast, accessibility, or legal compliance certificate. Version 0.2 does not perform speech recognition, automatic alignment, semantic revision matching, or pixel-perfect ASS rendering. TTML regions, styling definitions and inherited timing are not laid out; cue-level references are inspected and export is a flat, resource-free profile. ## Development Requires Node.js 22 and npm 11. ```sh npm ci npm run check npm run test:browser ``` ## Release `npm run release:artifact` creates the deterministic `release/subtitle-tools-0.2.0.zip` and checksum sidecar. ## Licence GPL-3.0-or-later. Runtime dependencies retain their own licences; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).