How to check and edit SRT subtitles

Machine-generated subtitles are never 100% right, so proofread before you publish. SRT is plain text; once you know the format and the usual kinds of error, a 10-minute video does not take long. If what you want is a plain-text transcript without timecodes (video to text), there is a method at the end.

The SRT format is four lines

Each cue is a number, a timecode, the text, and a blank line:

1
00:00:00,060 --> 00:00:02,900
I want to have a chat with you today.
今天我想和大家聊一聊,

2
00:00:02,900 --> 00:00:05,300
How can a small team
spend very little money?
一个小团队怎样用很少的钱

What to edit with

Twinsubs only generates files for now and has no built-in editor. That is deliberate: proofreading is left to the tool you already know.

When you save, keep two things: the encoding stays UTF-8 and the extension stays .srt. If TextEdit saves as rich text by default, switch it to plain text first, or formatting data ends up in the file.

Five kinds of error in machine subtitles

  1. Proper nounsNames of people, companies, products and terms. Recognition may write a similar-sounding word, and translation may render it literally. Check these first.
  2. Numbers and unitsYears, amounts, percentages. One misheard digit changes the meaning, so check against the video.
  3. Homophones and dropped phrasesWhere music covers the voice, half a sentence can be dropped or replaced by a similar-sounding word.
  4. Break positionsA cue that ends mid-sentence reads awkwardly. Merge or split cues to fix it.
  5. Overlapping or too-short timesTwo cues whose time ranges cross, or a cue shown for under a second so viewers cannot read it. Some editors refuse to import overlaps.

A proofreading order that saves time

  1. Search proper nouns firstUse find and replace across the whole file to fix every wrong spelling of the same word at once.
  2. Then scan the numbersLook only at cues that contain digits, and check them against the video.
  3. Finally watch it throughLoad the subtitles in a player such as IINA, play from the start, and pause only where it reads badly.

A long video does not need to be listened to word by word. With this order, most errors are caught in the first two steps.

In a bilingual file, which line is wrong?

Each cue in a bilingual SRT has two lines: one in the target language and one in the source. When something reads badly, check the source line first:

Turn an SRT into plain text (video to transcript)

What you want is not subtitles but a transcript with no numbers and no timecodes, for example for interview notes or course notes. Twinsubs writes only SRT for video, so the method is to make the SRT first and then strip the number lines and timecode lines. Pick either way:

Way one: a single Terminal command (tools built into macOS)

Choose the file first: for one language only, use the single-language file (such as Interview.en.srt); the bilingual file keeps both languages. Then run this in Terminal (replace the file name with yours, and quote it if it has spaces):

tr -d '\r' < Interview.en.srt | grep -vE '^[0-9]+$|-->' | sed '/^$/d' > Interview.txt

It does three things: strips Windows line endings, deletes the number-only lines and the lines with --> (the timecodes), and deletes blank lines. The result is saved as Interview.txt, and the original SRT is untouched.

Note: subtitle text that is only digits on a line (for example a line that says just “2024”) is deleted too, as if it were a cue number. Glance over the places where numbers appear after converting.

Way two: regex replace in a text editor

Each line of the result is one cue, not a paragraph. To turn it into running paragraphs, join neighbouring lines afterwards. If you need to know where in the video something was said, keep the SRT and do not convert.

Live translation has its own route: after a meeting you can choose to save a live session as a text file; see bilingual subtitles for meetings.

Subtitles are for reference; please proofread before publishing. See Terms of Use, section 3.

FAQ

Can I turn an SRT into a plain-text transcript?

Yes. An SRT is plain text; remove the number lines and the timecode lines and what is left is a transcript. The section on turning an SRT into plain text gives a Terminal command and a way to do it in a text editor.

Can I keep only one language of a bilingual SRT?

The easiest way is to use the single-language file Twinsubs writes alongside it (such as .en.srt), which contains only the target language. If you only have the bilingual file, use find and replace in an editor to delete one of the two languages line by line.

The SRT opens as garbage. What do I do?

Most likely an encoding problem. Reopen or save it as UTF-8 in a text editor. Twinsubs writes UTF-8.

The whole subtitle file is early or late against the speech.

First confirm the subtitles came from this same video. If the whole file really is offset, shift it in one go with a dedicated subtitle editor (for example the shift-times function in Aegisub) instead of editing timecodes cue by cue.

What does overlapping time mean?

The next cue starts before the previous one ends. Some editors refuse to import overlaps; move the end of the earlier cue to before the start of the later one.

Updated 2026-10-12. Back to the Twinsubs home page