Why Does My SRT File Show HTML Tags Like <b> and </b>?
Learn why HTML tags like <b>, <i>, and <u> appear visibly in SRT subtitles, how subtitle players render markup, and how to fix or remove tags cleanly.
Have you ever settled in to watch a movie or edit a video, only to see ugly code snippets like <b>, </b>, <i>, or </i> popping up directly on the screen alongside your subtitle dialogue?
If you are wondering why does my SRT file show HTML tags, the answer is straightforward: your video player or editing software is reading formatting tags as literal plain text instead of interpreting them as visual styling instructions.
These tags are not random computer glitches. In subtitle production, tags like <b> and <i> are commonly used to create bold and italic text. However, because the SubRip (.srt) format was originally designed as a minimal plain-text format, subtitle players handle markup inconsistently. When a player does not support markup or encounters malformed tags, it simply prints the raw tag characters directly onto your screen.
Seeing visible tags does not mean your subtitle file is corrupted. In this comprehensive guide, you will learn what formatting tags mean in an SRT file, why different players display them literally, how to fix or remove them, and how to preserve your intended formatting across different video platforms.
What Do <b>, <i>, and Other Tags Mean in an SRT File?
Although an SRT file is not an HTML webpage, subtitle creators frequently use basic HTML-style tags to convey visual tone, emphasis, and context:
<b>and</b>: Marks bold text. Often used for shouting, loud emphasis, or critical warnings.<i>and</i>: Marks italic text. The most common tag in professional subtitling, used for offscreen dialogue, telephone voices, thoughts, narration, background music, or foreign words.<u>and</u>: Marks underlined text, occasionally used for titles or specific emphasis.<font color="#ff0000">and</font>: Specifies custom text colors, often used to differentiate multiple speakers in closed captioning.
Here is what a typical formatted SRT cue looks like:
1
00:00:02,500 --> 00:00:06,000
<i>Watch out!</i> The bridge is <b>collapsing</b>!
In a compatible subtitle player, the viewer sees:
> Watch out! The bridge is collapsing!
In an incompatible or strict plain-text player, the viewer literally sees:
> <i>Watch out!</i> The bridge is <b>collapsing</b>!
Why Does My SRT File Display HTML Tags Instead of Formatting?
If HTML tags are visibly displaying on your screen, one of the following issues is usually responsible:
1. The Video Player Treats SRT as Pure Plain Text
Not all video players include an HTML-aware subtitle rendering engine. Lightweight web players, older hardware media streamers, and built-in smart TV subtitle engines often follow the original SubRip specification strictly. Because that specification did not officially define HTML tags, these players assume everything on the text line is dialogue intended to be read by the viewer.2. The Subtitle Editor Stripped or Escaped Markup
Some video editing suites (such as older versions of Adobe Premiere Pro, DaVinci Resolve, or Final Cut Pro) do not interpret inline SRT tags upon import. Instead, they convert them into literal characters or escape angle brackets (<b>), burning the tags permanently into open captions.
3. The Markup Is Malformed or Unclosed
Media players that do support tags rely on proper opening and closing tags. If a subtitle creator writes<b>Be careful! without a closing </b>, or incorrectly nests tags like <b><i>text</b></i>, the player's parser may fail and print the tags as raw text or mess up following cues.
4. A Conversion Tool Handled Tags Poorly
When converting between subtitle formats (e.g., from WebVTT or ASS to SRT), low-quality conversion tools can mishandle tag syntax. For instance, converting WebVTT's<c.red>text</c> into raw text without cleaning it up leaves broken markup in the SRT file.
5. Dialogue Genuinely Contains Angle Brackets
Occasionally, dialogue or technical annotations in instructional videos actually contain mathematical symbols or code snippets (such asa < b or HTML tutorials). If not handled properly, the player may misinterpret them as broken tags.
Does SRT Actually Support HTML Tags?
To understand why tag handling varies so wildly, it helps to understand the history of the SRT format.
| Feature | Official SubRip Specification | Modern Real-World Practice |
|---|---|---|
| Primary Design | Lightweight text and timestamps | Lightweight text and timestamps |
| HTML Tag Standard | No formal HTML specification | De facto support for <b>, <i>, <u>, <font> |
| Styling Capabilities | None | Limited to basic inline styling |
| CSS / Positioning | Unsupported | Unsupported (requires WebVTT or ASS) |
SRT is fundamentally a text-and-timing container, not a web document. Over the past two decades, developers of popular media players like VLC, MPC-HC, and MPV added informal support for basic formatting tags (<b>, <i>, <u>, and <font color="...">).
However, SRT does not support full HTML or CSS. You cannot use tags like <p>, <div>, <span>, inline CSS stylesheets, or JavaScript inside an SRT file. If you need advanced styling, custom fonts, karaoke effects, or onscreen positioning, SRT is the wrong format. You should convert your subtitles to ASS or WebVTT.
How to Fix HTML Tags Showing in SRT Subtitles
Depending on whether you want to keep the formatting or strip the tags for clean plain text, follow these step-by-step instructions:
Step 1: Make a Backup Copy
Always create a duplicate of your subtitle file before editing or running find-and-replace routines.Step 2: Open the SRT File in a Plain-Text Editor
Use a code editor like VS Code, Notepad++, or Sublime Text. These editors display exact text without hiding invisible characters.Step 3: Test in a Compatible Player First
Before editing hundreds of cues, load the SRT file into VLC Media Player. - If VLC renders the text in bold or italics without showing the tags, your SRT file is correctly formatted, and the issue lies with the specific player, TV, or editing software you were using previously. - If VLC also shows the tags literally, the markup in your file is likely malformed or escaped.Step 4: Fix Malformed Markup (If You Want to Keep Formatting)
Ensure that every tag follows standard syntax: - Every opening tag has a matching closing tag:<b>Bold text</b>
- Tags are properly nested: <b><i>Bold and italic</i></b> (never <b><i>Text</b></i>)
- No spaces inside tag brackets: write <i>, not < i >
Step 5: Remove Formatting Tags (If You Want Clean Plain Text)
If your target platform cannot render tags, removing them is the cleanest solution. - In VS Code or Notepad++: 1. PressCtrl+H to open Find and Replace.
2. Enable Regular Expressions (the .* icon).
3. In Find, enter: <[^>]+>
4. Leave Replace empty.
5. Click Replace All.
This instantly removes all tags like <b>, </b>, <i>, </i>, and <font ...>, leaving clean plain-text dialogue without touching your timestamps.
Step 6: Save in UTF-8 Encoding
Save your file with the.srt extension using UTF-8 encoding. Test the file in your video player to verify the dialogue is now clean.
Example: Fixing <b> and </b> in an SRT File
Let's look at a concrete before-and-after example:
Scenario A: Malformed Tag Showing on Screen
BEFORE (Malformed - missing closing bracket and wrong nesting):
4
00:00:15,000 --> 00:00:19,000
<b><i>Emergency warning!<b> Close the doors!
AFTER (Corrected - valid nested tags):
4
00:00:15,000 --> 00:00:19,000
<b><i>Emergency warning!</i></b> Close the doors!
Scenario B: Stripping Tags for Plain-Text Devices
If your smart TV or web platform displays<b> literally, strip the tags while preserving the dialogue:
BEFORE (Tags displaying literally on TV screen):
4
00:00:15,000 --> 00:00:19,000
<b><i>Emergency warning!</i></b> Close the doors!
AFTER (Clean plain text):
4
00:00:15,000 --> 00:00:19,000
Emergency warning! Close the doors!
Notice that in both scenarios, the sequence number (4) and the timestamps (00:00:15,000 --> 00:00:19,000) remain completely untouched.
Why Do HTML Tags Work in One Player but Not Another?
Different video playback engines approach subtitle rendering in fundamentally different ways:
| Player / Platform | Inline SRT Tag Handling | How It Renders <i>Hello</i> |
|---|---|---|
| VLC Media Player | Built-in HTML-like tag parser | Displays Hello in italics |
| MPV / MPC-HC | Full libass-backed subtitle renderer | Displays Hello in italics |
| Smart TVs (LG webOS, Samsung Tizen) | Minimal plain-text parser | Often displays <i>Hello</i> literally |
| Web HTML5 Players | Depends on player wrapper | Frequently ignores or prints raw SRT tags |
| Plex Media Server | Converts or direct-plays | Usually renders italics; may transcode |
| Video Editing NLEs | Strict plain text | Often imports tags as literal caption text |
Because subtitle rendering depends entirely on the playback environment, you cannot guarantee that every viewer will see italics or bold text when using SRT files.
Can Converting SRT to VTT or ASS Cause HTML Tags to Appear?
When switching between subtitle formats, tag preservation depends heavily on how the conversion is handled:
Converting SRT to WebVTT
WebVTT officially supports<b>, <i>, <u>, plus custom voice tags (<v Speaker>) and CSS classes (<c.yellow>). When converting with a reliable tool like our SRT to VTT Converter, standard bold and italic tags are preserved seamlessly. However, if you convert using a tool that escapes angle brackets, the tags will appear as visible text on the web.
Converting SRT to ASS
Advanced SubStation Alpha (.ass) does not use HTML tags at all! Instead, ASS uses override control codes inside curly braces:
- Bold: {\b1}Text{\b0}
- Italic: {\i1}Text{\i0}
- Underline: {\u1}Text{\u0}
If you convert SRT to ASS with a naive script that does not translate <i> into {\i1}, the resulting ASS file will literally display <i> on the screen. To learn how to convert between these formats properly, read our guides on How to Convert SRT to ASS Without Losing Formatting and SRT to ASS: Why Do Subtitle Styles and Positioning Get Lost?.
Should You Remove HTML Tags From an SRT File?
Deciding whether to remove or preserve tags depends on your specific use case:
When You Should Remove HTML Tags:
- Your audience uses smart TVs or basic hardware players that show raw tags on screen. - You are creating clean text transcripts, articles, or study notes from subtitles using our SRT to Text Converter. - Your video editing software imports tags as literal characters and burns them into the video picture. - The tags are accidental or meaningless.When You Should Keep HTML Tags:
- Italics convey vital narrative context, such as distinguishing an offscreen voice from an onscreen character. - You are distributing subtitles for VLC, MPV, or Plex, where formatting tags render beautifully. - You plan to convert your subtitles to WebVTT for web-based HTML5 video.How to Prevent SRT Formatting Problems
To avoid visible tag problems in your future video workflows:
- Use Dedicated Subtitle Software: Programs like Subtitle Edit or Aegisub automatically validate tags and highlight unclosed formatting.
- Do Not Paste Raw HTML: Never copy rich web text directly into subtitle cues without stripping extraneous web markup.
- Test in Your Target Playback Environment: Always test subtitles on the exact screen (e.g., smart TV, web browser, or mobile app) where your audience will watch.
- Choose the Right Format:
- - For simple desktop video: SRT
- - For modern web video: WebVTT
- - For styled anime, karaoke, or positioned titles: ASS
- Use High-Quality Conversion Utilities: Avoid generic file renaming. Use dedicated converters that translate formatting tags properly.
Format and Convert Subtitles with SRTConverters
Whether you need to clean up visible tags, translate formatting into web captions, or extract clean transcripts, SRTConverters provides free, client-side tools:
- Convert SRT to WebVTT: Translate your subtitle files into web-standard captions with our SRT to VTT Converter.
- Convert WebVTT to SRT: Convert web captions back into desktop-friendly SRT using our VTT to SRT Converter.
- Convert SRT to ASS: Upgrade your subtitles to professional styled captions with our SRT to ASS Converter.
- Convert ASS to SRT: Convert ASS files back to clean SRT using our ASS to SRT Converter.
- Strip Timestamps and Tags: Extract pure, unstyled text transcripts instantly using our SRT to Text Converter.
- Create Subtitles from Scripts: Turn plain text documents into timestamped subtitle cues with our TXT to SRT Converter.
- Explore our complete collection of subtitle tools in the SRTConverters Tool Suite.
Frequently Asked Questions
Why does my SRT file show <b> and </b>?
This happens when your video player or subtitle editor treats formatting tags as literal plain text rather than interpreting them as visual styling instructions, or when the tags are malformed.
Can SRT files contain bold text?
Yes, in compatible workflows. Many media players (like VLC and MPC-HC) recognize simple <b>bold</b> tags in SRT cues, but support is not universal across all web platforms and editing software.
How do I remove HTML tags from an SRT file?
You can open the SRT file in a plain-text editor and use search-and-replace to strip formatting tags, or run it through our free SRT to Text Converter to extract clean, unstyled dialogue instantly.
Why are <i> tags visible in my subtitles?
<i> and </i> tags represent italic styling (frequently used for narration, whispers, or offscreen voices). If your media player lacks basic HTML-like tag parsing for SRT files, it simply prints the tag characters on screen.
Are HTML tags supported in SRT files?
The original SubRip specification does not officially mandate HTML tags, but informal industry convention widely supports basic styling tags like <b>, <i>, <u>, and <font color="..."> in many modern players.
Why do subtitle tags work in one player but not another?
Subtitle rendering depends entirely on the video player's internal parser. VLC and MPV include built-in tag interpreters for SRT files, while basic smart TVs and web players often treat SRT as pure plain text.
Will removing tags affect subtitle timing?
No. Removing or modifying text styling tags inside a subtitle cue only changes the visual text appearance. It does not alter start timestamps, end timestamps, or audio synchronization.
Can converting SRT to VTT cause formatting problems?
Poorly built converters may strip, escape, or corrupt formatting tags during conversion. WebVTT natively supports <b>, <i>, and <u>, so a proper converter should translate them cleanly.
Should I use SRT or ASS for styled subtitles?
If you need reliable font styling, custom colors, outlines, shadows, or screen positioning, use the ASS (Advanced SubStation Alpha) format. SRT is meant only for simple text with minimal styling.
How do I fix malformed subtitle markup?
Open the SRT in a text editor and ensure that every opening tag has a matching closing tag (e.g., <b>text</b>), tags are properly nested without overlap, and no broken brackets exist.
Final Thoughts
Seeing HTML tags like <b> and <i> in your SRT subtitles is frustrating, but it does not mean your file is ruined.
It simply means there is a mismatch between how the file was formatted and how your player is reading it.
By checking whether your player supports inline tags, correcting malformed syntax, or stripping the tags when plain text is required, you can ensure your subtitles look clean and readable on any screen.
Whenever you need to clean, format, or convert your subtitle files, explore the free browser-based utilities in the SRTConverters Tool Suite for fast, 100% private processing.