subthis
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 (
ffmpegandffprobeon PATH).subthis setuptells you how to install it if it's missing. - An OpenAI API key.
Install
With uv (installs Python too if needed):
uv tool install /path/to/subthis
Or with pipx:
pipx install /path/to/subthis
Both put a subthis command on your PATH on any OS. To install from a git remote instead: uv tool install git+<repo-url>.
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 --term "Omarchy" # one-off extra term
subthis clip.mp4 --language he --language en
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file subthis-1.1.0.tar.gz.
File metadata
- Download URL: subthis-1.1.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bbefbc37737fb03443db7435849ed99abee5e67f17d3dc950bbbc18109b8a488
|
|
| MD5 |
b33dfbad4720c0af163b8afb9b12f5f8
|
|
| BLAKE2b-256 |
964ce857fc9f44725c07fd27ee718095b468764762c865fc0ca2cf93b40a8be2
|
Provenance
The following attestation bundles were made for subthis-1.1.0.tar.gz:
Publisher:
release.yml on ItayCohen-Prog/subthis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
subthis-1.1.0.tar.gz -
Subject digest:
bbefbc37737fb03443db7435849ed99abee5e67f17d3dc950bbbc18109b8a488 - Sigstore transparency entry: 2685004161
- Sigstore integration time:
-
Permalink:
ItayCohen-Prog/subthis@d9e3d4fb4c4857a434bf93d89a7413cff11be158 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/ItayCohen-Prog
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9e3d4fb4c4857a434bf93d89a7413cff11be158 -
Trigger Event:
push
-
Statement type:
File details
Details for the file subthis-1.1.0-py3-none-any.whl.
File metadata
- Download URL: subthis-1.1.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64a98a17387010d1bdf9f454e92dfadf091852f202ed515d2a81ca341cadc1e2
|
|
| MD5 |
4b5da889495f06e369e9d9f868792c25
|
|
| BLAKE2b-256 |
c3c97e2bbd6a11b7d743e1f0ac29617c2106981618d217ff16497fc259026c7d
|
Provenance
The following attestation bundles were made for subthis-1.1.0-py3-none-any.whl:
Publisher:
release.yml on ItayCohen-Prog/subthis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
subthis-1.1.0-py3-none-any.whl -
Subject digest:
64a98a17387010d1bdf9f454e92dfadf091852f202ed515d2a81ca341cadc1e2 - Sigstore transparency entry: 2685004179
- Sigstore integration time:
-
Permalink:
ItayCohen-Prog/subthis@d9e3d4fb4c4857a434bf93d89a7413cff11be158 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/ItayCohen-Prog
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d9e3d4fb4c4857a434bf93d89a7413cff11be158 -
Trigger Event:
push
-
Statement type: