---
title: "Subtitle Cleaner"
description: "Strip HTML tags, ASS/SSA overrides, SDH brackets and speaker labels from SRT and VTT subtitles in your browser. Timing never changes."
url: https://findutils.com/media/subtitle-cleaner/
category: media
---

# Subtitle Cleaner

Strip HTML tags, ASS/SSA overrides, SDH brackets and speaker labels from SRT and VTT subtitles in your browser. Timing never changes.

**Use this tool:** [Subtitle Cleaner](https://findutils.com/media/subtitle-cleaner/)

## Programmatic access

- REST id `subtitle-clean`: POST https://api.findutils.com/api/tools/subtitle-clean/execute (reference: https://findutils.com/api/subtitle-clean/)
- MCP tool `subtitle_clean` on https://mcp.findutils.com (reference: https://findutils.com/mcp/subtitle-clean/)

## Why clean a subtitle file?

Subtitle files pick up markup on their way between tools. A fansub script converted from ASS leaves {\an8} and {\i1} blocks in every line, a ripped track carries &lt;i&gt; and &lt;font color&gt; tags, and a WebVTT file from a streaming site can hold &lt;c&gt; and &lt;v&gt; tags. Many players hide some of it, but upload platforms, video editors and burn-in tools often show it as literal text. Subtitle Cleaner cleans subtitle text in your browser: it removes that markup from the cue text and leaves every start and end time exactly as it was, so the cleaned file stays in sync with the video it was made for. It does not change cue timing, does not translate, and does not upload your files.

## Tips

- SDH and speaker-label removal are off by default because they remove words, not just markup. Turn them on only when you want captions for a hearing audience.
- If a warning says every cue would be emptied, the file is probably all sound descriptions. Turn SDH removal back off.
- A speaker label is only removed at the start of a line and only when it starts with a capital letter and has at most four words, so "The time is 10:30" is left alone.
- An ASS \N inside a line becomes a real line break, and \h becomes a space.
- The cleaner does not fix timing. For overlapping cues use the Subtitle Overlap Fixer, and for a constant delay the Subtitle Shifter.

## Frequently asked questions

### How do I remove HTML tags like <i> from an SRT file?

Drop the file on this page with Strip HTML tags turned on, which is the default. Tags such as <i>, <b> and <font color="…"> are removed from every cue, the text between them is kept, and the timestamps are not changed. Then download the cleaned file.

### What does {\an8} mean in a subtitle, and can this remove it?

{\an8} is an ASS/SSA override that places a line at the top of the screen. It often leaks into SRT and VTT files converted from ASS and then shows as literal text. Strip ASS overrides, on by default, removes every {\…} block that starts with a backslash. A plain {text} without a backslash is left alone.

### Does cleaning change the subtitle timing?

No. Every start and end time is kept exactly. The only changes are to the cue text, and SRT cue numbers are renumbered from 1 when a cue is dropped.

### How do I remove [music] and other hearing-impaired descriptions?

Turn on Strip SDH brackets. It removes text in square or round brackets, such as [music] or (applause), and music notes (♪ ♫). It is off by default because it removes words as well as markup.

### What happens to a cue that is empty after cleaning?

It is dropped and counted under Empty cues dropped. A blank cue is never written, because a blank line inside an SRT or VTT file ends the cue. If the options would empty every cue, the page shows a warning and offers no download.

### Which speaker labels are removed?

A label at the start of a line that starts with a capital letter, has up to four words and ends in a colon followed by text, such as JOHN:, Mary: or Dr. Smith:. A dialogue dash is kept, so "- JOHN: Hi" becomes "- Hi". A colon later in a sentence, such as "the time is 10:30", is not removed.

### Does a VTT file stay VTT?

Yes, by default. Cue identifiers and cue settings such as line:90% are kept. Choose Force SRT to write SubRip instead. WebVTT NOTE, STYLE and REGION blocks are not copied to the cleaned file.

### Is my subtitle file uploaded?

No. The page reads the file and cleans it in your browser tab. The subtitle text is not sent to a server.

### Can I clean subtitles through an API?

Yes. The same cleaner is available as the subtitle_clean tool through the FindUtils REST API and MCP server. An API call sends your subtitle text to FindUtils over TLS; it is processed and returned, not stored or logged.

### What if the page says it could not read the file?

The file has a timing line the parser does not recognise, and the message gives its line number. Each timing line needs hours, minutes, seconds and milliseconds on both sides, such as 00:00:09,000 --> 00:00:11,300 in SRT or 00:00:09.000 --> 00:00:11.300 in VTT. Fix that line in the paste area and the file is cleaned at once.

## Related Tools

- [Subtitle Overlap Fixer](https://findutils.com/media/subtitle-overlap-fixer/)
- [Subtitle Shifter](https://findutils.com/media/subtitle-shifter/)
- [Subtitle Merger](https://findutils.com/media/subtitle-merger/)
- [SRT to VTT](https://findutils.com/convert/srt-to-vtt/)
- [ASS to SRT](https://findutils.com/convert/ass-to-srt/)
- [SRT to TXT](https://findutils.com/convert/srt-to-txt/)
