How-to

How to add subtitles to a video

Last updated: 2026-06-11

To add subtitles to a video, get a subtitle file — .srt for desktop and TV players, .vtt for web video — then either keep it as a soft sidecar the viewer can toggle or burn it permanently into the frames. For a soft track, give the subtitle file the same base name as the video (movie.mp4 + movie.srt) in the same folder, and players like VLC load it automatically. On the web, a single HTML5 <track> element loads a WebVTT file.

The first decision is soft versus hardcoded. Soft subtitles stay editable and switchable; hardcoded ones always show but cannot be turned off. Match the method to where the video will play.

The steps

  1. 01

    Get a subtitle file in the right format

    Start with a .srt for desktop and TV players or a .vtt for web video. If you need another language, translate the file first while keeping the timecodes intact, then add it to the video.

  2. 02

    Decide soft or hardcoded

    Choose soft subtitles (a separate sidecar file the viewer can toggle) for flexibility, or hardcoded burn-in (the text rendered permanently into the video frames) when the player cannot read external subtitles, such as some social platforms.

  3. 03

    Name the sidecar to match the video

    For soft subtitles, give the .srt or .vtt the same base filename as the video — movie.mp4 with movie.srt in the same folder — so players like VLC load it automatically. Add a language suffix such as movie.en.srt for multiple tracks.

  4. 04

    Load or upload the subtitles

    In a desktop player, drop the matching sidecar in the folder or use the subtitle menu. For web video, reference the .vtt with an HTML5 <track> element. On YouTube, upload the .srt through the subtitles editor for the video.

Soft vs hardcoded subtitles

The two methods differ in flexibility and where they work. Soft subtitles ride alongside the video; hardcoded subtitles are part of the picture.

AspectSoft (sidecar)Hardcoded (burn-in)
Toggle on/offYesNo
Multiple languagesYes, many tracksOne, baked in
Re-encode videoNoYes
Works where player has no subtitle supportNoYes
Editable laterYesNo

Desktop and TV players

VLC, MPC-HC, Kodi, and most smart TVs read soft subtitles. The simplest method is the matching filename: put movie.srt next to movie.mp4 and the player loads it on its own. To add one by hand in VLC, open the video and use Subtitle > Add Subtitle File. These players read SRT, WebVTT, and ASS, so the SRT you translated drops in directly. For several languages, name them movie.en.srt and movie.es.srt.

Web video and YouTube

For video on a web page, reference a WebVTT file with the HTML5 <track> element inside <video>:

<video controls>
  <source src="movie.mp4" type="video/mp4">
  <track src="movie.en.vtt" kind="subtitles"
         srclang="en" label="English" default>
</video>

Browsers read .vtt but not SRT, so convert SRT to VTT first. On YouTube, open Studio, pick the video, go to Subtitles, select the language, and upload the .srt; YouTube reads its timecodes and shows a toggleable caption track.

Adding subtitles in another language

To caption a video in a second language, translate the subtitle file before you add it, keeping every timecode unchanged so the new track stays synced. The SubLingo translator changes only the text (see how to translate an SRT file), then you add the result as another soft track named with a language suffix, or burn it in. Common picks include English to Spanish and English to French.

Key facts

  • Use .srt for desktop/TV, .vtt for web.
  • Soft = toggleable sidecar; hardcoded = burned permanently into frames.
  • Sidecar must share the video's base name (movie.mp4 + movie.srt).
  • Web video loads WebVTT via the HTML5 <track> element.
  • YouTube takes an uploaded .srt in the Subtitles editor.
  • Translate the file first, keeping timecodes intact, then add it.

Definitions

Soft subtitles
A separate sidecar file the player overlays; the viewer can toggle or switch languages.
Hardcoded
Subtitles burned permanently into the video frames; always visible, not switchable.
Sidecar file
A .srt or .vtt stored next to the video, named to match it.
&lt;track&gt; element
HTML5 tag inside <video> that loads a WebVTT caption track.
Burn-in
Re-encoding the video so the subtitle pixels become part of every frame.
Language suffix
A code in the filename (.en, .es) marking each track's language.

Related guides

FAQ

How do I add subtitles to a video?+

Get a subtitle file (.srt for desktop/TV, .vtt for web), then either keep it as a soft sidecar the viewer can toggle or burn it permanently into the video. For sidecar files, give the .srt the same base name as the video so players like VLC load it automatically.

What is the difference between soft and hardcoded subtitles?+

Soft subtitles are a separate sidecar file (.srt or .vtt) the player overlays and the viewer can turn on or off or switch languages. Hardcoded (burned-in) subtitles are rendered permanently into the video frames, so they always show and cannot be changed or hidden.

What filename should a sidecar subtitle have?+

Match the video's base name exactly: movie.mp4 pairs with movie.srt in the same folder, and players load it on their own. For multiple languages, add a language code, like movie.en.srt and movie.es.srt.

How do I add subtitles in VLC?+

Put the .srt with the same base name as the video in the same folder and VLC loads it automatically, or open the video and use Subtitle > Add Subtitle File to pick one manually. VLC reads SRT, WebVTT, ASS, and more.

How do I add subtitles to web video in HTML?+

Use an HTML5 <track> element inside the <video> tag, pointing to a WebVTT file: <track src="subs.vtt" kind="subtitles" srclang="en" label="English">. Browsers read .vtt natively but not .srt, so convert SRT to VTT first.

How do I add subtitles on YouTube?+

Open YouTube Studio, pick the video, go to Subtitles, choose the language, and upload your .srt file. YouTube reads the timecodes and text and shows the captions as a toggleable track viewers can turn on.

Can I add subtitles in another language?+

Yes. Translate the subtitle file first, keeping every timecode unchanged, then add the translated .srt or .vtt as another soft track or burn it in. SubLingo translates the text only and preserves the timing, so the new track stays synced.

Translate your subtitles now

Drop in your .srt or .vtt file, pick a language, and download a synced translation. Every timecode is preserved line for line.

Translate a subtitle file