Repolode
open-subs

open-subs/opensubs

Open-source local subtitling for any video: Whisper transcription, translation, styling and burn-in, in the browser, desktop app or CLI, without uploading the video.

Open-source alternative to:VEEDKapwing

Stars
115
Forks
8
Open issues
0
Last commit
4 days ago

What is it?

OpenSubs generates subtitles for a video by transcribing its speech, translating the text, applying a style and burning the result into the picture. The video is decoded on the user's machine and is never uploaded, since the product has no upload endpoint. Only the speech model is downloaded and cached locally, and subtitle text leaves the machine only if a cloud translator is chosen instead of the on-device one.

The same engine is available as a web app that runs in a browser tab, a Chrome, Edge and Firefox extension that shows live subtitles over playing video, a desktop app for long files and batches on macOS, Windows and Linux, and a command-line binary. Line breaking, reading-speed limits, style presets and the ASS writer are a shared Rust crate compiled to WebAssembly and to a native binary, so every front end produces identical output.

The repository is a monorepo with Rust crates for media probing, speech recognition, SRT/VTT/ASS handling and translation providers, plus front ends built with Svelte, Tauri, Capacitor and the extension APIs. The desktop app and CLI call ffmpeg for burning and need a build that includes the ass and whisper filters.

Key features

  • 01Transcribes speech with Whisper, running locally in the browser or on desktop.
  • 02Translates subtitles with an on-device translator or an optional cloud provider.
  • 03Burns styled subtitles into the video using ASS style presets.
  • 04Exports SRT, VTT and ASS subtitle files.
  • 05Shows live subtitles over video playing in Chrome, Edge or Firefox tabs.
  • 06Provides a CLI for scripting and CI pipelines.

Use cases

  • Subtitling private or confidential footage that should not be uploaded to a third-party service.
  • Batch-processing long video files on a desktop machine.
  • Adding live subtitles to videos watched in the browser.
  • Automating subtitle generation in a CI or scripting workflow.

Quick start

  1. 1

    Open the web app in a browser, nothing to install

  2. 2

    Build the CLI from source with Cargo

    cargo build --release -p opensubs

Things to know

  • Licensed AGPL-3.0-or-later, a strong copyleft license that applies to derivative work.
  • Desktop app and CLI need an ffmpeg build with the ass and whisper filters; Homebrew's standard ffmpeg lacks them.
  • Building from source requires Rust 1.97.1 and Node 22.

Topics

FAQ

What is opensubs?
Open-source local subtitling for any video: Whisper transcription, translation, styling and burn-in, in the browser, desktop app or CLI, without uploading the video. OpenSubs generates subtitles for a video by transcribing its speech, translating the text, applying a style and burning the result into the picture. The video is decoded on the user's machine and is never uploaded, since the product has no upload endpoint. Only the speech model is downloaded and cached locally, and subtitle text leaves the machine only if a cloud translator is chosen instead of the on-device one.
Is opensubs free to use? What license does it have?
opensubs is open source under the AGPL-3.0 license. Check the license terms before using it in commercial products.
Is opensubs still maintained?
Actively maintained. The last commit to opensubs was on Oct 16, 2026.
What can I use opensubs for?
Subtitling private or confidential footage that should not be uploaded to a third-party service. Batch-processing long video files on a desktop machine. Adding live subtitles to videos watched in the browser. Automating subtitle generation in a CI or scripting workflow.
How do I install opensubs?
Open the web app in a browser, nothing to install Build the CLI from source with Cargo: cargo build --release -p opensubs
Where can I get opensubs?
The source code and installation instructions are on GitHub: https://github.com/open-subs/opensubs

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects