The Subtitle Problem
Subtitles should just work. But if you have ever used a self-hosted media server, you know the reality is more complicated.
Some players cannot read embedded subtitle tracks. Some formats are not supported on certain devices. SRT works here but not there. ASS styling breaks in browsers. And if your subtitles are in a separate file, you need to name it exactly right and place it in exactly the right folder.
We wanted to fix all of this in Lumen.
Automatic Extraction
When you upload a video to Lumen, our transcoding pipeline does more than just process the video and audio. It also runs ffprobe to detect every embedded subtitle track in the file.
Each track is extracted and converted to WebVTT — the subtitle format supported by every modern browser and native video player. The extracted subtitles are stored alongside your video in cloud storage, tagged with their language metadata.
You do not need to do anything. If your MKV has English, Spanish, and French subtitles embedded, all three will be available in the player automatically.
OpenSubtitles Integration
Not every video file comes with embedded subtitles. That is why Lumen integrates with OpenSubtitles — the largest open subtitle database in the world — to fetch subtitles for titles that do not have them baked in.
When your video has no embedded tracks, Lumen automatically searches OpenSubtitles by title and matches available subtitles in multiple languages. Downloaded subtitles are converted to WebVTT and stored alongside your video, so they load instantly in the player just like extracted ones.
This means your library gets subtitle coverage whether your files have them embedded or not.
Language Detection
Subtitle tracks — whether extracted from the file or fetched from OpenSubtitles — include language metadata. Lumen reads this metadata and presents subtitles with proper language labels in the player UI. Select your preferred language, and it sticks across episodes.
If a track is missing language metadata, we label it clearly so you can still identify and select it.
Why WebVTT?
We chose WebVTT as our standard format for several reasons:
- Universal support — works in every browser via the HTML5 track element
- Native player support — both AVPlayer on Apple platforms and ExoPlayer on Android handle VTT natively
- Simple and reliable — plain text format that renders consistently across devices
- Web standard — maintained by the W3C with broad industry adoption
Two Sources, One Experience
Whether subtitles come from embedded tracks or OpenSubtitles, the experience is identical. They show up in the same subtitle picker, they render the same way, and they sync the same way. You never need to think about where they came from.
Subtitles Are Not an Afterthought
For many viewers, subtitles are essential — whether for accessibility, language learning, or simply watching in a noisy environment. We treat subtitle support as a core feature, not an add-on.
Upload your files. Your subtitles are handled — extracted from the file or fetched from OpenSubtitles. It just works.