字 AI-SRTSub

How to batch-replace terms in subtitles

One term table makes the wording of an entire subtitle file consistent in one go — timelines, ASS styles and VTT NOTE blocks are not touched by a single character.

Updated 2026-10-17Tool guides

What this tool does

The same word translated two different ways, names and places drifting with machine translation, someone else's subtitles that need to match your own conventions — all of these share one trait: what changes is a word, not the structure. This page changes words only.

  • Unify names — people, places and proper nouns stay consistent throughout.
  • Fix machine errors — a term the machine translated wrongly is replaced across the whole file.
  • Adopt your own usage — rework someone else's subtitles to your conventions.
  • SRT / VTT / ASS / SBV / LRC / TXT — all six formats are recognised.

Two inputs: subtitles and a term table

The "1 Add subtitles" column on the left takes a subtitle file, or you can paste the content straight in; if you picked the wrong file, click "Clear".

The "2 Term table" column on the right holds the rules. One rule per line, with the old term and the new term separated by `->` , `=>` , `→` or a Tab — all four work. Lines starting with `#` are comments and take no part in replacement.

If you are unsure about the format, click "Fill in an example" and edit that.

The add-subtitles area and the term table input of the term replacement page
Subtitles on the left, rules on the right; one rule per line, old term and new term separated by ->

How to write the term table

One rule per line: the current term on the left, what it should become on the right. For example `Thor -> Donar` replaces every "Thor" in the file with "Donar".

Comments start with `#` and are handy for labelling a group of rules (for example "# season 1 name fixes"), and for switching a rule off temporarily — just put a `#` in front instead of deleting it.

Rules run from top to bottom; text produced by one rule is scanned again by the rules below it. When order matters (say, replace A with B first and then B with C), keep that in mind.

Line after line of replacement rules in the term table input
One rule per line; lines starting with # are comments and can switch a rule off temporarily

What the three switches do

Scope: `all` / `first line only` / `second line only`. In a bilingual file, pick "second line only" when you only want to change the translation; entries that have just one line stay untouched under either single-line setting — the tool does not guess which side is the original.

Whole word: replaces only terms that stand alone as a word, so `art` will not touch `start`. For languages that do not separate words with spaces, such as Chinese and Japanese, this switch has no effect — replacement works on substrings there.

Case sensitive: off by default, so `CEO` and `ceo` are both replaced; when ticked, only the exact same spelling is replaced.

The scope, whole-word and case-sensitive switches below the term table
Scope decides which line changes; whole-word and case decide how strictly a term is matched

Every change listed, every change reversible

"3 Result" shows the replaced subtitles and also lists every change: which cue, which line, from what to what.

If you do not want one of them, click it in the list to revert just that entry — no need to edit the term table and rerun. When you are happy, click "Download" or "Copy".

The result area with the list of individual changes
Every change is listed; click one you do not want to revert it

What is left untouched

Timelines, ASS style lines and VTT `NOTE` blocks are not touched by a single character. Replacement applies to dialogue text only, never to structural lines.

The term table never modifies your subtitle file automatically — the result is a new output and the original stays as it is.

Common questions

Why was a term not replaced? Check the scope first: with "second line only" selected, entries that have just one line stay untouched. Then check whole-word matching, which stops matches that are not standalone words.

Why does Chinese still replace substrings with whole-word matching ticked? That is expected. Chinese and Japanese do not separate words with spaces, so the tool cannot determine word boundaries and whole-word matching has no effect there.

How do I roll everything back after a mistake? Revert entries one by one in the change list; to start over entirely, clear the term table and add the subtitles again.

Can ASS style lines be changed by accident? No. Style lines and `NOTE` blocks are out of scope; only dialogue text takes part.

Privacy

Subtitles and the term table are processed entirely in the browser: nothing is uploaded and nothing goes through a server. The term table is not stored, so it is empty the next time you open the page.

Related tools and guides

Whether to build a term table and how to maintain one across a season, see Term tables: keeping a season consistent; if the content is dirty (watermarks, SDH cues) run Subtitle cleaning first; once the names are settled and you need other languages go to Subtitle translation; and run the result through Subtitle QC.

Runs entirely in your browser, nothing to install.

Open batch term replacement

Related guides