Find and fix problems in your SRT subtitles

Check a complete subtitle file, fix individual cues and download the result without uploading a video.

Free production workspace

Check and repair an SRT file

Your entered text and files stay in this browser. Download a project or result before leaving.

Loading workspace…

UTF-8 SRT only. No video or audio is uploaded; timing against speech still needs playback.

Adjust readability review limits

These are editable review settings, not certification for a platform or a language.

Make your film

Put your plan into practice. Learn to turn a scene from your book into a short film, step by step.

Start the free filmmaking course

Want help making it? Explore book-to-film services

An SRT file needs numbered cues with valid start and end timestamps. This validator separates structural errors from readability warnings, shows the affected cue and original source line, and lets you edit the file before export. Repairs to numbering and decimal separators require an explicit action.

Facts checked against primary sources on . Sources are listed at the end of the page.

Worked examples

Real results from the calculator above, shown in full so you can check the method against your own numbers.

Illustrative clean two-cue file

These invented lines are a format demonstration, not subtitles from a released film.

Cues
2
Structural errors
0
Review warnings
0

Warnings depend on editable readability limits. Playback is still required to check synchronization with speech.

Illustrative overlapping captions

A hypothetical overlap produces a review warning while preserving both cues.

Cues
2
Structural errors
0
Review warnings
1

Warnings depend on editable readability limits. Playback is still required to check synchronization with speech.

Check the subtitle file before you check the film

An SRT file can look plausible in a text editor and still contain problems that interfere with playback. A cue may end before it starts, reuse a number, contain an invalid timestamp or display too much text in too little time. This validator reads the complete text file, identifies affected cues and lets you make deliberate corrections before downloading another SRT.

Paste the file contents or open a UTF-8 SRT or text file. Press Validate SRT to build the cue workspace. The summary separates structural errors from review warnings. Select a cue to inspect its number, timing and text, then edit those values directly. The issue list updates against the edited cues and the readability limits you have chosen.

No video or audio is required because the tool checks the text file itself. That is useful for catching a broken handoff or reviewing a subtitle draft quickly. It also defines an important boundary: the validator cannot know whether a line matches the spoken words or whether its timestamp aligns with a character’s mouth. Playback remains part of the finished-subtitle review.

The workspace accepts up to 250,000 source characters and 2,000 cues, with a one-megabyte file-selection limit. Large collections should be split into meaningful sections or reviewed with a dedicated subtitle application. File content stays in this browser; action measurement records the tool and export format without including your subtitle dialogue.

Read one cue as a structured record

A typical SRT cue contains three parts: its sequence number, a timing line and one or more lines of text. A blank line separates it from the next cue. For example, cue 1 might run from 00:00:01,000 to 00:00:03,000 and contain “The last train leaves at dawn.” That record tells a player when to display the text and when to remove it.

The timing line uses an arrow between start and end, written as two hyphens followed by a greater-than sign. The tool expects whitespace around that arrow. Each timestamp contains hours, minutes, seconds and three millisecond digits. Minutes and seconds must fall between 00 and 59. Hours use at least two digits and are not restricted to a single day.

The cue editor keeps the timing line visible as text so you can inspect the exact punctuation. A valid-looking number in the wrong position should not be silently interpreted as a different time. For example, 00:70:00,000 is rejected rather than normalized to one hour and ten minutes. That correction requires knowing what the author intended.

The Library of Congress description of SubRip provides a reference for the format’s basic structure. This tool implements a defined subset for text validation and editing. It does not promise compatibility with every player extension or proprietary subtitle package that resembles SRT.

Errors and warnings have different consequences

Structural errors block checked-SRT export. They include invalid cue numbering, duplicate numbers, malformed timestamps, an end that is not later than its start, empty subtitle text and starts that move backward through the file. These conditions need an explicit correction before the tool will produce a file labeled as checked.

Warnings identify matters requiring judgment. Overlapping cues can be accidental, but simultaneous text may be intentional in a particular workflow. A high reading speed can be unsuitable, yet the appropriate limit depends on the audience and material. The validator leaves these cases as review warnings rather than pretending one universal rule determines every subtitle decision.

The distinction is visible in the summary and the selected cue’s messages. A file with zero structural errors can still have warnings worth resolving. It can also contain spelling mistakes, poor translations or inaccurate synchronization that text-only validation cannot detect. “Checked” describes the implemented structural checks, not a guarantee of complete editorial or accessibility quality.

If an export is blocked, filter the list to cues with errors and work through them. Keep an eye on the original source-line reference when comparing with the imported file. After editing, the reference continues to identify the import location; it is not recalculated as a new physical line number for every change in the current workspace.

A clean illustrative file

The sample contains two invented subtitle lines from a fictional station scene. The first runs from one second to three seconds, and the second begins at 3.2 seconds and ends at 5.5 seconds. These timings are a format demonstration, not captions transcribed from an actual released film. They let you test the workflow without using private dialogue.

Cue 1 lasts two seconds. Its text contains twenty-nine visible characters under the tool’s counting convention, including spaces and punctuation. Dividing twenty-nine by two gives 14.5 characters per second. With the default twenty-character review limit, that cue does not trigger a reading-speed warning. The calculation is transparent enough to verify by changing either the words or the duration.

The 0.2-second gap between the first end and the second start does not create an overlap. This validator does not impose a minimum gap setting or a platform-specific frame gap. A target service may have additional requirements, so do not mistake the absence of an overlap warning for a complete delivery-specification check.

Try the sample and download checked SRT. Open the result in a text editor and confirm that it contains two numbered cues, comma-based millisecond punctuation and a blank line between records. Then change one end time so it precedes its start. The new error should block checked export until you correct the time, demonstrating the difference between a valid file and an editable draft.

Timestamp problems need precise corrections

The validator accepts strict timestamps with a comma before milliseconds. Decimal dots can be recognized so the tool can explain the problem and offer an explicit punctuation repair. Until repaired, those dots are reported as structural errors. Recognition is not the same as treating every variant as acceptable checked SRT.

An end equal to its start creates a zero-duration cue and is rejected. An earlier end is also rejected. The tool does not guess whether you meant to extend the end, move the start or place the subtitle in a different minute. Choose the correction from the intended playback and preserve the words unless they also need editing.

Out-of-order starts are reported separately. A file whose third cue starts before its second cue may have been assembled incorrectly, even if each individual duration is positive. The editor does not automatically sort the cue records because reordering can change their relationship to surrounding text and source references. Edit the timing or return to the source application when the correct sequence is unclear.

Invalid separators, missing timestamp components and unsupported timing suffixes remain visible in the cue editor. They are not discarded to create a superficially clean result. This is especially useful after a manual copy-and-paste operation, when a line may have been truncated. Compare the original source and repair the record deliberately before exporting.

Find overlaps, including nested intervals

Two cues overlap when a later cue starts before an earlier active cue ends. Consider one cue from 1 to 10 seconds, another from 2 to 3 seconds and a third from 4 to 5 seconds. The third does not overlap the immediately preceding short cue, but it still overlaps the long first cue. A useful checker must look beyond adjacent end times.

This validator sorts valid intervals for the overlap check and tracks the furthest active end. It can therefore flag both later cues in that example. The warning identifies a relevant overlapping cue for review. It does not enumerate every possible pair in a dense stack or attempt to redesign the presentation of simultaneous speakers.

A cue beginning exactly when another ends is not considered an overlap. The comparison is strict: start earlier than active end triggers the warning. If your delivery specification requires a gap, review that separately. The checker’s millisecond model is also distinct from a frame-based editorial convention tied to a particular video frame rate.

To correct an accidental overlap, watch the scene and decide which subtitle should finish first. You may need to shorten text, change an end, move a start or combine ideas in the source editor. The tool allows direct editing but does not automatically trim every earlier cue, because doing that could make a readable subtitle disappear too quickly.

Reading speed is characters divided by time

The basic calculation is visible character count divided by cue duration in seconds. A forty-character subtitle displayed for two seconds produces twenty characters per second. The same text over one second produces forty. This arithmetic helps you identify pressure on the reader without claiming that character count captures every aspect of comprehension.

The default maximum is twenty characters per second. You can change it to match a project review policy. Defaults also include forty-two characters per line, two lines per cue and a one-to-seven-second duration range. These are editable review settings rather than a claim that the file meets every platform’s delivery guide.

Shortened names, unfamiliar terminology, fast dialogue and an audience reading in a second language can all affect practical readability. A mathematically acceptable cue may still need simplification. Conversely, a brief familiar label might be easy to recognize at a higher calculated speed. Use warnings to select material for review rather than treating the number as an automatic editorial verdict.

If a cue is too dense, consider the available choices. Extending the display may help if it does not conflict with speech or cuts. Shortening the text may preserve meaning while reducing reading demand. Moving a line break can improve scanning but does not change total character count. The validator exposes the measurement; you decide which change fits the scene.

Character counting and line layout

Unicode characters do not always correspond one-to-one with individual code units. An accented letter can be represented by a base letter and a combining mark. An emoji may contain several code points. The checker counts grapheme clusters so those visible units do not inflate the count merely because of their internal encoding.

Spaces and punctuation count toward reading speed. Line breaks do not. The tool also excludes recognized basic italic, bold, underline and font tags from readability counts while preserving them in the exported text. It does not render user-supplied markup as page HTML. Unrecognized text-like markup may count as visible content instead of receiving an unsupported special interpretation.

Line length is checked separately for each subtitle text line. A cue can fit the total reading-speed target while containing a line that is awkwardly long. The line-count limit is another independent check: three short lines can trigger a two-line review limit even if each line is comfortably below forty-two characters.

Changing a line break does not automatically solve every layout problem. The actual player, font, screen size and caption placement affect what viewers see. After text-file review, watch the subtitles at the intended display size. A narrow phone frame can reveal wrapping and placement problems that a desktop text editor cannot show.

Explicit repair keeps creative choices visible

The repair button performs two defined operations: it renumbers cues from one in their existing order and replaces decimal dots with commas in otherwise valid recognized timestamps. It does not translate, shorten, shift or reorder subtitles. It also does not resolve overlaps or infer a missing word from the surrounding dialogue.

Before repair, the workspace keeps the current cue list as a one-step undo checkpoint. If the result is not what you intended, restore the previous list. This recovery does not create a permanent version history. Save the output or retain the original source file before experimenting with several different repairs and edits.

Numbering repair can make a copied extract structurally consistent when its first cue begins at an old sequence number. That is useful when the extract is intended as a standalone SRT. If another system depends on the original cue numbers for review notes, retain the original file and explain the renumbering when you share the repaired version.

Decimal punctuation repair preserves the numeric time values. A timestamp at 3.250 seconds remains at 3.250 seconds after its separator becomes a comma. A malformed timestamp with impossible minutes is left for manual correction. This boundary avoids labeling a speculative timing interpretation as a harmless formatting repair.

Recover a difficult import without dropping dialogue

The parser separates ordinary blank-line-delimited records. It can also recognize a numbered cue followed by a timing line when a blank separator was lost. That recovery keeps earlier subtitle text instead of merging the next cue into it. The exported file restores explicit separators between the parsed records.

Missing cue numbers remain visible as empty numbers and generate numbering errors. Malformed timing lines remain in their records for editing. The tool does not discard a problematic block just to report fewer errors. If a block contains unrelated notes rather than subtitles, inspect it and return to the source file when necessary; the workspace does not pretend those notes are valid cues.

UTF-8 files with an initial byte-order mark and common newline conventions are accepted. A file encoded with a different legacy character set may fail the UTF-8 import. Re-save it as UTF-8 in an appropriate text or subtitle editor, then import again. Silent decoding replacement could damage names or dialogue, so the file reader reports an encoding problem instead.

SRT, WebVTT, ASS and other subtitle formats have different structures. Renaming a file extension does not convert its contents. This page accepts SRT text and does not advertise a general subtitle conversion service. A WEBVTT header or style-heavy format should be handled by a tool that explicitly supports that format before you validate the resulting SRT here.

Work through a long file in manageable groups

The cue list shows twenty records per page. Use the previous and next controls to move through longer files without rendering an enormous editing form at once. The selected cue has a dedicated editor below the list. Its original source line and current issue messages help you keep the review tied to the import.

Filter to errors when your immediate goal is a valid export. Filter to warnings when structural repair is complete and you want a readability pass. The “any issue” view combines both. An empty filtered list means no cue matches that selection under the current limits; it does not mean the file has been checked against audio.

Edits update the validation results. If you shorten a line enough to clear a warning, that cue can disappear from a warning-filtered list while remaining selected for editing. This is expected: the record still exists in the full cue collection. Return to all cues to inspect the complete sequence and read transitions between neighboring subtitles.

Review settings also affect the visible issue count. Lowering maximum reading speed can expose more dense cues, while increasing it can remove those warnings. Changing a threshold does not change any subtitle text or timing. Keep the chosen review policy consistent during a shared pass so collaborators understand why one report contains more warnings than another.

Export the subtitles and the review evidence

Download checked SRT writes the edited cue list after structural validation. Copy checked SRT uses the same checked content for the clipboard. Both actions stop if structural errors remain. Readability and overlap warnings remain your decision and are preserved in the content rather than silently removed or corrected during export.

The issue report is a separate CSV containing cue reference, original source line, severity, code and message. It can be downloaded while the subtitle file still contains errors. That makes it useful for handing a list of problems back to an editor without pretending the broken SRT itself is ready for delivery.

CSV fields are quoted, and potentially formula-like text receives a protective apostrophe for spreadsheet use. The issue report contains generated diagnostics rather than a transcript of your film. If you need collaborators to inspect the actual dialogue, share the appropriate subtitle draft separately through your normal project workflow.

After downloading, reopen the SRT in the player or editing application you intend to use. Check the first cue, several repaired cues and the ending. Confirm that the new file is the one attached to the video, because a correct export cannot prevent an application from continuing to reference an older filename in another folder.

Finish with a playback pass

Watch the film with the checked subtitles enabled. Verify that the words match, speaker changes make sense and important sound information is handled appropriately for your project. Check whether subtitles appear too early or remain after a scene change. These are content and synchronization judgments outside a text-only validator’s evidence.

Pay attention to captions over bright or visually busy images. The SRT text does not define every detail of player styling. Placement, contrast and screen-safe display depend on the playback environment. Test the actual format and platform that your audience will use rather than relying only on a local player with generous defaults.

For reviewing a single passage’s text density before you have a file, use the subtitle reading-speed checker. For arithmetic involving time notation, the timecode calculator serves a separate purpose. This page is the file-level workspace for numbered cues, timing structure, overlap review and explicit repair.

The free Book-to-Screen course connects subtitle review with the broader process of finishing and sharing a short film. Use this validator near the export stage, after the story and edit have settled enough for meaningful synchronization. A final text-file check and a real playback pass complement one another, giving you evidence that both the document and the viewing experience deserve a closer look before release.

Keep an original alongside the checked file

Save the incoming subtitle file before beginning a substantial review. The undo control can restore one earlier import or repair, but individual text edits do not create a permanent history. A separately retained original lets you compare a disputed wording or timing change after the browser session ends.

Use filenames that distinguish the incoming draft, your checked export and the version actually attached to the film. If another editor makes changes later, validate that new file as a new import. Earlier checks describe the earlier content; they do not certify a document that has subsequently been altered in another application.

How to use this

  1. Load SRT text

    Paste subtitles or open a UTF-8 SRT file, then run validation.

  2. Review affected cues

    Filter errors and warnings. Edit timestamps or text and adjust readability settings for your project.

  3. Repair and export

    Use the explicit numbering repair if needed. Clear structural errors, download the checked SRT and verify it during playback.

Questions authors ask

Will it change my subtitle timing automatically?
No. You can edit times directly. The repair action only renumbers cues and converts valid decimal dots to commas. It does not shift cues or resolve overlaps.
How are errors different from warnings?
Malformed timestamps, numbering, empty cues, reversed durations and out-of-order starts block SRT export. Overlaps and adjustable readability limits are warnings requiring review.
Does it check subtitles against my film?
No audio or video is analyzed. It checks the text file. Watch the exported subtitles with your film to verify speech, sound descriptions and synchronization.
How are characters counted?
The checker counts Unicode grapheme clusters, including spaces. It excludes line breaks and supported basic formatting tags from readability counts. Those tags remain in the exported text.

Related tools