Kara3
Guides Open the editor

What is srv3? The format behind colored and karaoke subtitles on YouTube

Updated October 2, 2026

srv3 is YouTube's own subtitle format, also called YouTube Timed Text. The files usually end in .srv3 or .ytt. Unlike SRT, the most common format, srv3 can store text color, edges, where the text sits on screen, and the timing of each character. That is why almost every karaoke subtitle on YouTube that changes color along with the singing is made with srv3.

Where the name comes from

Inside YouTube's caption system the format is called "srv3" (version 3), and the root element of the file says format="3". If you download subtitles with yt-dlp and pick the srv3 format, this is the file you get. Community tools for making colored subtitles, such as YTSubConverter, call it YouTube Timed Text and save it as .ytt. The content is the same; only the file extension differs.

YouTube's official list of supported subtitle file formats doesn't include srv3, but you can upload it in YouTube Studio, and the community has been making colored subtitles this way for years.

What the file looks like

srv3 is an XML text file. <head> defines the styles, and <body> holds the subtitles, one line at a time:

<?xml version="1.0" encoding="utf-8" ?>
<timedtext format="3">
<head>
<pen id="0"/>
<pen id="1" fc="#FFFFFF" ec="#000000" et="3"/>
<pen id="2" fc="#5B8CFF" ec="#000000" et="3"/>
<pen id="3" fo="0" bo="0"/>
<ws id="0"/>
<wp id="0"/>
<wp id="1" ap="7" ah="50" av="95"/>
</head>
<body>
<p t="1000" d="2000" wp="1"><s p="3">&#x200B;</s>&#x200B;<s p="1">Sing along</s></p>
</body>
</timedtext>
  • <pen>: text style. fc is the text color, fo the text opacity, ec the edge color, et the edge type, sz the font size (a percentage), and fs the font. b, i and u are bold, italic and underline.
  • <wp>: position on screen. ap is the anchor point (0 to 8, a 3×3 grid), and ah and av are the horizontal and vertical position as percentages.
  • <ws>: window style, such as text alignment.
  • <p>: one subtitle line. t is the start time and d the duration, both in milliseconds.
  • <s>: a piece of text inside a line. p says which pen to use.

Two things in the example are there for YouTube's sake and don't change what you see:

  • Empty definitions with id 0: the iOS app ignores the background of the first pen, so the first definition of each kind is an empty one that nothing uses.
  • &#x200B; at the start of the line: &#x200B; is an invisible zero-width space. The line starts with a zero-width space in the transparent pen 3, followed by a zero-width space that isn't inside any <s>. Without them, YouTube would drop the style of the lyrics (see "Limits on YouTube" below for why).

Fonts

srv3 can't name a font. fs can only pick one of the 7 fonts YouTube provides:

fs Font Type
Not set or 0 Roboto Default
1 Courier New Monospaced serif
2 Times New Roman Serif
3 Lucida Console Monospaced sans-serif
4 Roboto Sans-serif
5 Comic Sans MS Casual
6 Monotype Corsiva Cursive
7 Carrois Gothic SC Small capitals

These are all Latin fonts with no Chinese, Japanese or Korean characters. CJK text is shown in some other font on the device, so changing the font may make no visible difference to CJK text. Only Latin letters and digits change.

How it compares with SRT, WebVTT and ASS

Feature SRT WebVTT ASS srv3
Text color <font color> works in some players Yes Yes Yes
Edges and shadows No Limited Yes Yes
Position on screen No Yes Yes Yes
Per-character timing (karaoke) No Yes (inline timestamps) Yes (\k) Yes
Can be uploaded to YouTube Yes Yes No Yes

ASS has the most features of any subtitle format and is popular with anime fansub groups, but YouTube doesn't accept it. To keep colors, positions and the karaoke effect on YouTube, you have to convert to srv3.

How the karaoke effect is made

srv3 has no tag that says "this character changes color at this time". The karaoke effect is made with a series of repeated subtitles: one lyric line is split into many subtitles, and each one shows one more character in the "sung" color than the one before.

To keep it readable, the zero-width spaces at the start are left out here:

<p t="1000" d="400"><s p="2">Sing</s><s p="1"> along</s></p>
<p t="1400" d="1600"><s p="2">Sing along</s></p>

These two subtitles follow each other: at 1 second "Sing" changes color, and at 1.4 seconds the whole line has changed. The finer the timing, the more subtitles you get. A single song often has thousands, so writing them by hand is hard and you need a tool to generate them.

srv3 can also do this another way: add a t attribute to <s> so that each piece only appears at a given time. YouTube's automatic captions use this to show words one at a time.

You can also have two or more subtitles at the same time, placed at different positions or with different edges, to make a shadow or a double edge.

Limits on YouTube

These come from the YTSubConverter documentation. Knowing them before you start saves you some trouble:

  • YouTube Studio's preview doesn't show styles. After you upload, the subtitle editor in Studio shows plain text. This is normal. As long as you don't edit the subtitles in Studio, the real player shows the styles. If you do edit them in Studio, the styles may be lost.
  • The phone apps show less. The phone apps don't support custom backgrounds (it's always a black box), and ruby (furigana) becomes plain text in parentheses.
  • Off-center subtitles move outward in theater mode. Subtitles placed toward the left or right move further to the side in theater mode on computers, and can even end up outside the video.
  • The style of the first piece of each line may be removed. When you upload, YouTube removes the style of the first piece of text in each subtitle, unless that subtitle also has text that isn't inside any piece. The usual fix is to put invisible zero-width spaces at the start. Kara3 does this for you when it exports.
  • There are only 7 fonts. You can only use the fonts in the table above. You can't choose any other font.
  • Font size changes only have a quarter of the effect. Setting sz to 200% only makes the text 125% as big, and the smallest it can get is 75%.

Editing srv3 with Kara3

Kara3 is a free srv3 editor with nothing to install. It merges repeated subtitles back into single lyric lines, so you can edit the text, timing, colors and position directly, and it generates the repeated subtitles again when you export. Anything it doesn't recognize is kept as it is, not broken.

To make karaoke subtitles from scratch, see "How to make karaoke subtitles". If you already have SRT or ASS subtitles, see "Convert SRT and ASS to srv3".

More guides

enesjakozh-cnzh-tw