JSON Formatter
Formats, indents and validates JSON with precise error positions, key sorting and a…
Shifts every subtitle cue forward or back by a set number of seconds, and can rescale the timings when the frame rate is wrong.
The Subtitle Timing Shifter shifts every subtitle cue forward or back by a set number of seconds, and can rescale the timings when the frame rate is wrong. It runs as plain JavaScript inside the page, which means there is no upload step, no queue and no size limit imposed by a server — the only limit is your own device.
| Uniform offset | Use the shift alone |
|---|---|
| Drift that grows | Frame-rate problem — use the rate |
| 23.976 to 25 fps | Rate 0.959040 |
| 25 to 23.976 fps | Rate 1.042709 |
| Format | Kept as whatever you pasted |
This tool uses new time = old time × rate + shift. A constant shift fixes a uniform offset; the rate multiplier fixes a drift that grows through the film. Every intermediate value is shown on screen, so the result can be checked by hand.
A single shift and a single rate apply to the whole file. Subtitles that go out of sync only after an advert break or a missing scene need the file split and each part shifted separately, which this does not do.
Formats, indents and validates JSON with precise error positions, key sorting and a…
Checks whether JSON is valid and reports the exact line, column and reason for the first error…
Strips all whitespace from JSON to produce the smallest valid output, showing the bytes saved.
Converts a JSON array of objects into CSV, flattening nested keys and handling missing fields…
Turns CSV or TSV into a JSON array of objects, with type detection for numbers and booleans.
Converts JSON into well-formed XML with a configurable root element and array item naming.
Parses XML and converts it to JSON, preserving attributes and handling repeated elements as…
Converts JSON to clean YAML with correct indentation, quoting and multi-line string handling.
Parses YAML and outputs equivalent JSON, with support for anchors, lists and nested maps.
Escapes a string for safe embedding inside JSON, and unescapes a JSON string back to plain text.