Skip to main content

subthis

Website and docs: https://subthis.webivize.com (English and Hebrew)

Turns a video (or audio file) into an SRT subtitle file with short, accurately worded captions, at most three words per cue. Built for Hebrew with English tech terms mixed in: it transcribes twice through the OpenAI API (gpt-transcribe for wording, whisper-1 for word timing), aligns the two, and canonicalizes product names like OpenAI, Claude and ChatGPT.

Works on Linux, macOS and Windows. No Python dependencies outside the standard library.

Requirements

  • ffmpeg (ffmpeg and ffprobe on PATH). subthis setup tells you how to install it if it's missing.
  • An OpenAI API key.

Install

With uv (installs Python too if needed):

uv tool install subthis

Or with pipx:

pipx install subthis

Both pull subthis from PyPI and put a subthis command on your PATH on any OS. To try it without installing: uvx subthis video.mp4.

If the subthis command isn't found after installing, run uv tool update-shell (uv) or pipx ensurepath (pipx) and open a new terminal.

Setup

subthis setup

Checks for ffmpeg, asks for your OpenAI API key (input hidden), verifies it against the API, and stores it in the config directory:

  • Linux/macOS: ~/.config/subthis/
  • Windows: %APPDATA%\subthis\

It also creates terms.txt there, where you can add professional terms and spelling corrections:

MyCompany
DaVinci Resolve = דה וינצ'י ריזולב | Davinci Resolve

OPENAI_API_KEY in the environment overrides the stored key.

Use

subthis lecture.mp4                 # writes lecture.srt next to the input
subthis talk.mp4 -o subs/talk.srt   # explicit output path
subthis clip.mp4 --max-words 2      # shorter cues
subthis clip.mp4 --language he --language en

Teaching it your terms

Terms are names and jargon subthis should spell correctly. Spaces separate terms; wrap a multi-word term in single quotes:

subthis clip.mp4 --term "Omarchy 'Wispr Flow'"   # this run only
subthis config terms "Omarchy 'Wispr Flow'"      # every video, saved globally
subthis config terms                             # interactive editor

Bare subthis config terms opens a keyboard-driven editor of your saved terms: arrows move, space selects, m marks or unmarks all, r removes the selected terms (with confirmation), a adds new ones, q saves and quits. The key guide stays at the bottom of the screen.

For a folder of related videos, put a subthis-terms.txt file next to them (one term per line, or Canonical = alias one | alias two for spelling corrections); it is picked up automatically for any video in that folder.

Changing your key

subthis config key

Prompts for a new OpenAI key and verifies it (validity and account credit) before saving, same as setup.

Tuning the captions

subthis config captions            # see every setting, its value, and what it does
subthis config captions words 2    # example: two words per line from now on
subthis config captions reset      # back to the defaults

Settings (defaults follow subtitle-industry standards): words per line (1-3), pause (a silence this long starts a new line), hang (how long a line outlives its last word), min (minimum time on screen), gap (empty space before the next line, default 0; all in seconds), punctuation keep|remove, and silence hold|cut (hold, the default, keeps each line up until the next starts so captions connect). Saved values apply to every future video; --max-words still overrides words for a single run.

Finding your finished file

When subthis finishes it prints the full path of the subtitle file. With

subthis config open on

it also opens your file manager with that file selected (Explorer on Windows, Finder on macOS, and the FileManager1 interface on Linux desktops, falling back to opening the folder).

Updates

When a newer version is on PyPI, subthis offers to update at the start of a run and then continues exactly where you were. Declining prints the command to update later.

Long videos are chunked and merged automatically; uploads stay under OpenAI's 25 MB limit.

Tests

python -m unittest discover -s tests

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

subthis-1.8.3.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

subthis-1.8.3-py3-none-any.whl (31.5 kB view details)

Uploaded Python 3

File details

Details for the file subthis-1.8.3.tar.gz.

File metadata

  • Download URL: subthis-1.8.3.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for subthis-1.8.3.tar.gz
Algorithm Hash digest
SHA256 cf7d32b55c5d01d45dbcad18af2516924a158226fd26a872890434085c0f4e77
MD5 895ef61e0e57345b7e12b475df03bb46
BLAKE2b-256 9a8ccf291b0f5aa67eeef9c0f5ed63ecf588a152dc6f21b39203e82c73e82c6b

See more details on using hashes here.

Provenance

The following attestation bundles were made for subthis-1.8.3.tar.gz:

Publisher: release.yml on ItayCohen-Prog/subthis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file subthis-1.8.3-py3-none-any.whl.

File metadata

  • Download URL: subthis-1.8.3-py3-none-any.whl
  • Upload date:
  • Size: 31.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for subthis-1.8.3-py3-none-any.whl
Algorithm Hash digest
SHA256 385e8d159ee8391ef16da4f5fd331c6a2e87911be57c3c79da35afcceccc4598
MD5 3c33117ae25f816e5303c32bfc614173
BLAKE2b-256 dcb5799a2ce5e8a68274af5fb5b3c7372c4748625fcb10242eec5b7d3d30b28a

See more details on using hashes here.

Provenance

The following attestation bundles were made for subthis-1.8.3-py3-none-any.whl:

Publisher: release.yml on ItayCohen-Prog/subthis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.8.4

2 files

This release

1.8.3 This release

2 files

1.8.2

2 files

1.8.1

2 files

1.8.0

2 files

1.7.2

2 files

1.7.1

2 files

1.7.0

2 files

1.6.1

2 files

1.6.0

2 files

1.5.0

2 files

1.4.0

2 files

1.3.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page