sublight

Subtitles for any video.
Made on your computer.

sublight listens to a video and writes its subtitles, timed to the word, in the language you choose. On YouTube and any site with a video, and on the files on your disk. The speech recognition and translation run on your own machine: nothing is uploaded, ever.

The Sublight Player: a video with its subtitles on screen, the control bar, and the tracks panel.

What it does

Any video on the web

YouTube, Vimeo and any site that plays a video, embedded players included. Captions appear on the video itself, ahead of playback where the site allows, live otherwise.

Your own files

The Sublight Player plays the videos on your disk, or takes over a web page's video in one click, with every feature: captioning, translation, styles, export.

Any language

Speech in about a hundred languages becomes text. English comes straight from the audio; other languages from a translator that keeps the meaning, not just the words. Show the original and the translation together to learn.

Timed to the word

Every word carries its own timestamp, so captions land when it's spoken: 77 ms median error over a 30-minute film. Word by word, or whole sentences.

Private by design

The models run on your computer. Audio, transcripts and what you watch never leave it. Open-source models, downloaded once from pinned sources and checked.

A real player

VLC's keyboard and YouTube's gestures: double-click to skip 10 s and keep tapping for more, hold for 2×, frame steps, A–B loops, screenshots, a queue, light and dark.

How it works

  1. The extension finds the video on the page, draws the captions over it, and asks the engine.
  2. The engine runs on your computer: Whisper for speech, a local translator, ffmpeg for audio. It starts when it's needed and turns itself off when idle.
  3. The Player plays your files and page videos, and edits and exports their subtitles.

With an NVIDIA graphics card the models use it; without one, they run on the processor. Everything talks over 127.0.0.1, never the internet, except to fetch the video you're watching.

Install

Linux for now (x64 or ARM), with Brave, Chromium, Chrome, Vivaldi or Edge.

  1. Run the installer

    In a terminal:

    curl -fsSL https://github.com/ABakdi/sublight/releases/latest/download/install.sh | bash

    It installs the engine, the Player and the speech model into ~/.sublight, and the CUDA toolkit if you have an NVIDIA card. It asks before installing anything with sudo. Run it again to update; --uninstall removes it.

  2. Load the extension

    Open brave://extensions (or chrome://extensions), switch on Developer mode, click Load unpacked and choose ~/.sublight/extension. Once.

  3. Caption a video

    On any page with a video, click the sublight icon, then Caption this video. The engine starts by itself.

Where it works

Works

  • YouTube, including Shorts; TikTok and Instagram feeds
  • Any site that plays a plain video, HLS or DASH stream
  • Embedded players in other pages
  • Video files on your disk: MP4, WebM, MKV, MOV
  • Sites that need your login, with your permission

Doesn't

  • DRM-protected streams (Netflix, Disney+): their audio can't be read
  • Live streams, ahead of time: they're captioned live instead
  • macOS and Windows: not yet

Questions

Why Developer mode?

Chromium browsers install packed extensions only from their web store, and sublight isn't published there yet. Developer mode lets the browser load the extension from the folder the installer puts it in. Keep it on.

Do I need a graphics card?

No. With an NVIDIA card the models run on it and are several times faster; without one they run on the processor. You can choose in the extension's Settings → Developer mode.

How much disk space?

About 2 GB for the engine and the speech model, and 2.5 GB more for the translator, downloaded the first time you translate into a language other than English.

Does anything leave my computer?

No audio, transcript or history. The engine fetches the video you're watching from its site, as your browser does, and downloads the models once. That's all.

How do I remove it?

Run the installer with --uninstall (add --purge to delete the models too), then remove the extension from the browser's extensions page.