Adding subtitles (closed captions) in multiple languages to videos on a WordPress website can be done in a few different ways depending on how you host the video and which tools/plugins you use. Here are the simplest and most reliable methods:
✅ Method 1: Using WordPress’ Native Video Block (Self-Hosted Videos)
If you upload videos directly into WordPress (not recommended for large files), you can add subtitle files like .vtt.
Steps
- Prepare subtitle files in WebVTT format:
- Example names:
subtitles-en.vttsubtitles-es.vttsubtitles-fr.vtt
- Example names:
- Upload your
.vttfiles to the WordPress Media Library. - Add a Video Block in the editor.
- Click Settings ⚙️ → scroll to Tracks → click Add Tracks.
- For each subtitle:
- Choose your uploaded
.vttfile - Set Kind: Subtitles
- Set Language (“en”, “fr”, etc.)
- (Optional) Check Default for default subtitle language
- Choose your uploaded
✔️ Pros
- Built-in WordPress feature
- No plugins needed
❗ Cons
- Requires manually creating VTT files
- Limited customization
✅ Method 2: Using Plugins (Best for Multilingual Sites)
If you want a smoother workflow with automatic detection, translation, or better UI, use a plugin.
1. Video.js Player Plugin
Video.js HTML5 Player supports multiple subtitle tracks.
Steps:
- Install Video.js HTML5 Player plugin.
- Upload your video.
- Upload
.vttsubtitle files. - Add your video with subtitle tracks in the plugin settings or shortcode.
2. FV Player
A premium WordPress video player with very good subtitle support.
Features:
- Multiple languages
- Subtitle styling
- Toggle from player UI
Steps:
- Install FV Player
- Upload video + subtitle files
- Add subtitles in the FV Player interface
3. YouTube or Vimeo embeds (EASIEST + Recommended)
If your video is hosted on YouTube or Vimeo, you can upload subtitles directly there.
Then embed the video using:
- WordPress block
- Shortcode
- Paste link
All subtitles are automatically included in the embedded player.
✔️ Best option for performance and ease
✔️ Auto-translate options available on YouTube
✅ Method 3: Using Multilingual Plugins (WPML / Polylang / TranslatePress)
If your whole website is multilingual, these tools help organize video subtitles or separate videos per language.
WPML + Subtitles
- Upload video
- Upload subtitle tracks
- WPML lets you assign specific subtitles to each language page
TranslatePress
- Works best if subtitles live inside your video player (YouTube/Vimeo)
📌 How to Create Subtitle Files (VTT Format)
A simple .vtt file looks like:
WEBVTT
00:00:02.000 --> 00:00:05.000
Welcome to our video!
00:00:06.000 --> 00:00:10.000
Today we will learn how to add subtitles.
Save as:
english.vttfrench.vttspanish.vtt
⭐ Recommended Approach
If performance matters and you don’t want to manually maintain subtitles:
👉 Upload video to YouTube or Vimeo → add subtitles → embed in WordPress
If you need subtitles on self-hosted videos:
👉 Use Video.js or FV Player for the best multilingual support
✅ How to Add Subtitles Using Polylang
If you already installed Polylang, here’s the simplest way to manage multilingual subtitles for videos on your WordPress site. Polylang does not directly add subtitle tracks to videos, but it does help you manage separate content per language, including different subtitle files or different video embeds.
Option 1: Use the same video, but add language-specific subtitle tracks
This works if your video is self-hosted in WordPress.
Steps
For each language handled by Polylang:
- Open the page/post in that language
- Example:
- English version of the page
- French version of the page
- Example:
- Add your Video block in that language’s page.
- In the block settings (right side):
- Scroll to Tracks
- Click Add Track
- Upload / select the correct
.vttsubtitle file for that language.
Example:
- English page →
sub-en.vtt - French page →
sub-fr.vtt
Each language page will show the correct subtitles automatically.
✔️ Simple
✔️ Works with Polylang structure
✔️ No extra plugins
✅ Option 2: Use YouTube or Vimeo (Easiest)
If the video is from YouTube, Vimeo, or another host:
Step-by-step:
- Upload your video subtitles directly on YouTube/Vimeo.
- Polylang creates different URLs for each language.
- Embed the same video link into all language pages.
The video player will automatically offer subtitle selections.
✔️ YouTube auto-detects language
✔️ No need to upload VTT files manually
✔️ Best for performance
✅ Option 3: Use a Video Plugin That Supports Multiple Tracks (e.g., Video.js or FV Player)
You can:
- Add one video
- Add multiple subtitle tracks
- Place one player in each language page
Polylang doesn’t change the player — just the page content.
📌 Key Idea with Polylang
Polylang does not combine languages on one page.
Instead:
➡️ You create separate pages for each language
➡️ You add the correct subtitle file on each language version
This gives complete control over subtitles.