Spotting what actually changed between two ATEM XML exports, config files, or JSON payloads is tedious to do by eye. Drop two files into the boxes below — or paste the raw text straight in — and this tool lines them up and highlights exactly what was added, removed, and changed, right down to the word. Nothing you paste or drop ever leaves your browser.
How to use the diff checker #
- Drag a file onto the Original or Modified box, click Browse file… to pick one, or just paste text straight into either textarea.
- Click Compare. Matching lines stay plain, changed lines are highlighted red (removed) and green (added), and the exact words that changed within a line get a stronger highlight — the same convention GitHub uses for pull request diffs.
- Use Switch to unified view to flip between a GitHub-style side-by-side layout and a single-column view with
+/-markers. - Click Swap sides if you loaded the files in the wrong order, or Load sample ATEM diff to see the tool in action with a small audio-mapping example.
Leave Pretty-print XML/JSON before comparing checked if you're not sure the two files were exported with the same formatting — ATEM XML exports in particular can vary in whitespace between software versions, which otherwise shows up as noise in the diff.
What counts as a "change" #
The tool runs a proper line-by-line diff (the same Myers diff algorithm used by git diff and most code review tools) rather than a naive line-by-line comparison, so inserting or deleting a line in the middle of a file doesn't make every line after it look different. When a line is edited rather than added or removed outright, the tool pairs it up with its closest match on the other side and diffs the two at the word level, so a single changed attribute — like a sourceId in an ATEM audio mapping — is highlighted on its own instead of marking the whole line as different.
Pretty-printing
Turning on Pretty-print XML/JSON before comparing reformats each side with consistent two-space indentation before the diff runs — XML gets one tag per line, JSON gets JSON.stringify(…, null, 2). This matters most when comparing exports from different tools or software versions, since a purely cosmetic difference in whitespace shouldn't bury the actual content change. JS files are compared as-is, since safely reformatting arbitrary JavaScript needs a real parser.
Ignoring whitespace
Ignore whitespace-only differences compares each line after trimming leading and trailing whitespace, which is useful when one file was re-indented but the content is otherwise the same. The original text is still shown in the result — only the comparison itself ignores the whitespace.
Where this comes in handy
Beyond ATEM audio and camera profiles, this works for anything you'd otherwise diff by eye: comparing two versions of a JSON config, checking what a script changed in a generated XML file, or reviewing a JS snippet someone sent you against your own copy.