Workflows

Editing SRT Subtitle Files by Hand and in Subtitle Editors

An SRT file is plain text, so you can edit it in any text editor as long as you keep its structure intact: a cue number, a timing line, one or two lines of text, then a blank line. For quick text corrections a plain text editor is enough; for timing changes, splitting cues or anything across hundreds of cues, a subtitle editor is safer because it renumbers and validates for you.

8 min read · Updated

The anatomy of an SRT cue

Every SRT file is a sequence of cues separated by blank lines. Each cue has exactly this shape:

Cue number
A whole number, starting at 1 and counting up. Some players tolerate gaps; some upload validators do not.
Timing line
Start and end time in hours, minutes, seconds and milliseconds, written as 00:02:14,500 --> 00:02:17,900, with a comma before the milliseconds and a space either side of the arrow.
Text
One or two lines of subtitle text. Most players also understand simple tags such as i for italics and b for bold.
Blank line
Ends the cue. A missing blank line merges two cues; an extra one in the middle of a cue can split it.

That is the whole format. There is no header, no styling section and no language field, which is why SRT is so widely accepted and also why small slips break it. How SRT differs from WebVTT is covered in SRT vs VTT.

Choosing the right tool for the edit

  • A plain text editor (Notepad on Windows, TextEdit in plain-text mode on a Mac, or a code editor such as VS Code) is ideal for correcting words. Never use a word processor in its normal mode: it can turn straight quotes into curly ones, add formatting and save a file that is no longer plain text.
  • A dedicated subtitle editor shows cues as rows with a waveform or video preview. Subtitle Edit (mainly Windows) and Aegisub (cross-platform) are long-standing free options. They handle shifting, splitting, merging, renumbering and error checks.
  • A platform editor, such as the subtitle editor in YouTube Studio, lets you fix text and timing after uploading. It is convenient for small corrections but harder for systematic changes, and you should download the corrected file afterward so your master copy stays current.

A practical split: fix words in a text editor, change timing in a subtitle editor, and finish with a check in the player your audience uses.

Fixing the words without touching the timing

Most edits to machine-generated subtitles are text corrections: names, product terms, numbers, punctuation and the occasional misheard word. What to look for, and in what order, is covered in proofreading an AI transcript, and for translated subtitles in machine translation post-editing. The mechanics in an SRT file are where people trip up:

  • Edit only the text lines. A stray character in a timing line can make a player skip that cue or reject the whole file.
  • Use find and replace with care. Replacing "Jon" with "John" also turns "Jonas" into "Johnas" unless you match whole words, and replacing a number can alter a timestamp if the digits match.
  • Keep tags balanced. An opening italic tag without a closing one can italicize every cue that follows in some players.
  • Keep the blank line between cues, and don't add blank lines inside a cue.
  • Write numbers and units as your style guide says, and keep them consistent across the file.

Breaking long lines into two

Machine subtitles often arrive as one long line per cue, because each cue corresponds to one recognized speech segment. A long single line runs across the whole frame and is harder to read than two shorter lines. Many subtitle style guides cap lines at around 40 characters for Latin-script languages, with two lines per cue at most.

To break a line, press Enter at a natural phrase boundary so the cue has two text lines. Break after punctuation or before a conjunction or preposition, and keep the two lines roughly balanced, with the bottom one slightly longer if anything. Never split a name, a number and its unit, or an article from its noun.

Splitting and merging cues

When a cue holds two sentences or lasts more than about six or seven seconds, split it into two cues. Divide the time in proportion to the text, and start the second cue where the second sentence is actually spoken.

Worked example: splitting one cue

Cue 14 runs from 00:00:41,000 to 00:00:47,600 and reads "Open the settings panel and choose Export. Then pick the folder where you want the file saved." Listening shows the second sentence begins at about 44.2 seconds. The split gives cue 14 from 00:00:41,000 to 00:00:44,100 with the first sentence, and a new cue 15 from 00:00:44,200 to 00:00:47,600 with the second. Every later cue then moves up one number.

Renumbering is the reason to use a subtitle editor for splits: it renumbers automatically, while doing it by hand in a 300-cue file invites mistakes. Merging is the opposite operation, used when two fragments each flash up for under a second. Give the merged cue the first cue's start time and the second cue's end time.

As a rough guide, keep every cue on screen for at least a second, leave a small gap between consecutive cues so the eye registers the change, and make sure no cue ends after the next one starts. Reading speed and cue length are explained in depth in subtitle timestamp alignment.

Shifting the timing of the whole file

If every subtitle is early or late by the same amount, typically because the video was trimmed at the start after the subtitles were made, shift the whole file. In Subtitle Edit this is under the synchronization menu as an option to adjust all times; in Aegisub it is Shift Times under the timing menu. Enter the offset, positive to delay and negative to advance, and apply it to all cues.

ffmpeg can also shift a file from the command line. This delays every cue by 2.5 seconds:

ffmpeg -itsoffset 2.5 -i talk.srt talk-shifted.srt

Check the first and last cues against the video afterward. If the error grows over the length of the video instead of staying constant, a fixed shift will not fix it; that pattern, and how to stretch timing, is covered in the timestamp alignment article linked above.

Saving, encoding and validating

Save SRT files as UTF-8. It handles accented letters and every script, and modern players and platforms expect it. If a file shows garbled accents or question marks after editing, the editor probably saved it in a legacy encoding; subtitles showing strange characters explains how to recover. Line endings rarely matter, since players accept both Windows and Unix styles.

Before re-uploading, run through these checks:

  1. The extension is .srt and not .srt.txt. Both macOS and Windows can hide extensions, so check the file's info panel.
  2. Cue numbers run 1, 2, 3 without gaps or repeats.
  3. Every timing line has the comma millisecond separator and the arrow with spaces.
  4. Each end time is after its start time, and cues do not overlap unintentionally.
  5. Exactly one blank line separates cues, with none inside a cue.
  6. The file opens without warnings in a subtitle editor, which flags most structural errors.
  7. It plays in sync in VLC or your target player from start to finish.

Mistakes that break SRT files

  • Editing in a word processor and saving as a document, or with curly quotes and hidden formatting.
  • Using a dot instead of a comma before the milliseconds, which is the VTT style.
  • Deleting a cue's text but leaving its number and timing behind, creating an empty cue.
  • Breaking numbering after splitting or deleting cues.
  • Accidentally editing a timing line during find and replace.
  • Expecting color or position tags to survive upload; many platforms strip formatting beyond basic italics.

If a file still refuses to load after these checks, why an SRT file is not working walks through the remaining causes.

Editing mydubly's SRT files

mydubly's SRT files follow the standard layout: sequential cue numbers, comma millisecond timestamps, one recognized speech segment per cue written as a single line, and UTF-8 text. That makes them easy to edit in any tool above. Because mydubly adds no manual line breaks, breaking long lines and splitting long segments is the most common edit, along with correcting names and terms.

Two limits are worth knowing. mydubly cannot import an edited SRT, so corrections stay in your file: they will not change a dubbed voice track already generated, and they will not carry into a new translation. If you need subtitles in another language, generate them from the audio with the subtitle generator rather than translating your edited file, then apply the same name and term fixes there. Every job also gives you a VTT file, so if you edit the SRT, regenerate or convert the VTT too, or the two versions will drift apart.

Re-uploading the edited file

Upload the corrected SRT the same way you added the original, replacing the old track rather than adding a duplicate, and keep the edited version as your master copy. Platform-specific steps for YouTube, editors and players are in how to add subtitles to a video.

Frequently asked questions

Can I edit an SRT file on my phone?

Yes, with a plain text editor app or a subtitle editing app, though it is fiddly for more than a few corrections. Make sure the app saves plain text as UTF-8 and keeps the .srt extension. For timing changes or splitting cues, a computer with a subtitle editor and a video preview is much faster and less error-prone.

Does changing the text change the timing?

No. The text and timing are independent, so correcting a word leaves the cue's start and end times as they were. Timing only changes if you edit the timing line or use a shift or sync tool. If you make a line much longer, check that the cue stays on screen long enough to read it.

Why does my edited file show all the text in one cue?

Usually a blank line went missing between cues, so the player reads the next number and timestamp as subtitle text. Open the file in a text editor, find where the cues run together and restore a single empty line between them. A subtitle editor's error check will point to the exact spot.

Can I add positioning, like moving a subtitle to the top?

SRT has no official positioning. Some players recognize alignment tags borrowed from the ASS format, but many platforms ignore or strip them. If position matters, use WebVTT with cue settings for web players, or ASS for desktop playback, and test on the platform where the video will be watched.

How many characters should a subtitle line have?

A common guideline for Latin-script languages is around 40 characters per line and no more than two lines per cue. Languages written in Chinese or Japanese characters use lower limits because each character carries more meaning. The platform or client you deliver to may have its own specification, which takes precedence.