Extension .vtt
Smartling Identifier vtt
Example File subtitle.vtt
Resources - WebVTT


File directives for API Service configuration parameters are listed below. Inline directives are not supported.


Markup (HTML tags and formatting) is now supported for VTT translation in the CAT Tool. The file must contain the code of the tags as follows; <b></b> for the Bold tag, <i></i> for the italics tag and <u></u> for the underline tag. Any variations will fail. The translation VTT file will include the tags, unescaped.


File directives are supported, both inline and via our APIDirectives are specified in comments within the files, in the following format:

Inline File Format

smartling.[directive_name] = [value]

API Parameter

smartling.[directive_name] = [value] 

Here are some examples of [directive_name], along with example values or paths.


Value  id | time_range

Change the key detection type.

Default: time_range

time_range = time range is treated as a key.

ID = cue id or caption will be treated as a key.

If the value is id, but the caption for a cue is not present - the key for the cue is null.


smartling.vtt_key_type = id

smartling.vtt_key_type = time_range



Value  id | time_range

Change the variant detection type.

Default: time_range

time_range = time range is treated as a variant.

ID = cue id or caption will be treated as a variant.

If the value is id, but the caption for a cue is not present - the variant for the cue is null.


smartling.vtt_variant_type = id

smartling.vtt_variant_type = time_range




on|yes|true or off|no|false or leading|trailing

The default value is on


A whitespace is any character or series of characters that represent horizontal or vertical space in typography. When rendered, a whitespace character is not a visible mark, but does occupy an area or space on a page.

Although whitespaces are necessary within a string (typically to separate words), unnecessary whitespaces can be found at the start of a string (leading) and at the end of a string (trailing).

With this directive, you can trim whitespaces, as it enables or disables whitespace trim management for the ingested strings.

Whitespace is optionally trimmed from content then re-inserted on download for convenience so that translators do not have to manage the extra spaces. However, content owners may want to retain surrounding whitespace so that translators can manipulate it during translation.

By default, the leading and trailing whitespaces are trimmed.

You can choose to disable trimming or specify trimming for leading or trailing whitespaces.

The directive can be used inline or as the API request parameter.



Smartling will trim leading and trailing whitespaces (default)


Smartling will not trim leading or trailing whitespaces


Smartling will trim only leading whitespaces


Smartling will trim only trailing whitespaces



Exact delivery depends on file type.


html4 (default)|html5



By default, all html4 entities are unescaped, except the basic set: &lt; &gt; &amp; &quot;.

When this directive is set to html5, all html5 entities will be unescaped as well.


smartling.entity_escaping_type = html5 



Values propagate | none

Used to retain entity escaping for all non-base entities. For example normally we turn &copy; into © but if we use this new directive the translation will automatically update to use escaping from the source. For each entity character we'll check to see if it was escaped in the source and try to match (propagate) it in the target.

The default is none which is the current behavior, which recognizes HTML4 entities only - if HTML5 entities are required as well, you must use the entity_escaping_type=propagate directive.

propagate will only affect non-base entities - all named entities except &amp; , &quot;, &lt;, &gt; . Base entities continue to be controlled by HTML detection and the entity_escaping directive.

If the same character is both escaped and unescaped in the same string propagate will return the characters in the translation escaped in the same order as they were in the source. However, if there are a different number of characters in the translation where the translation process removed or added some and the escaping is inconsistent among them, propagate will escape all entities for that character.

This directive can be placed inline, in the API or in a template (consult your SA about configuring directive templates).

This does not affect source content at all - so using it will not result in new strings.

Numerical entities are not considered at all with this directive, and are treated normally.


To use inline:
smartling.entity_escaping_strategy = propagate

XML Characters (always escaped)

Character (name) Escape sequence

< (less-than)


> (greater-than)


& (ampersand)


' (apostrophe or single quote)


" (double-quote)



Video Tutorial: Translating Video Subtitles in Smartling


Step 1: Create a .srt or .vtt file 00:06
Step 2: Check the segmentation
Step 3: Upload the subtitle file to Smartling
Step 4: Upload the video as visual context
Step 5: Authorize the job
What your linguists see
Step 6: Download the completed translations
Step 7: Add the translated subtitles to your video
   a. Closed captions
   b. Open captions
Help & Support

Was this article helpful?