Skip to main content

autosubs

Automatic subtitle (.srt) generator CLI. Point it at video/audio files (or directories) and it writes a sidecar .srt subtitle file per input using a local faster-whisper speech-to-text model. Runs fully offline after the first model download.

Features:

  • Automatic spoken-language detection.
  • Translate-to-English mode (--translate).
  • Batch / recursive directory input.
  • Cross-platform: CPU int8 on macOS (Apple Silicon), CUDA on Linux/NVIDIA (untested but should work).

Try it without installing

With uv, you can run it once without installing anything permanently:

uvx --from autosubs-whisper autosubs VIDEO [VIDEO ...]

uvx fetches the package into a temporary environment, runs the autosubs command, and leaves nothing behind. (The --from flag is needed because the package is named autosubs-whisper (autosubs was already taken) while the command is autosubs.)

Install

uv tool install autosubs-whisper

This puts the autosubs command on your PATH (works on macOS, Linux, and Windows). pipx install autosubs-whisper works too.

For local development from a clone, use uv sync and uv run autosubs.

Usage

autosubs VIDEO [VIDEO ...]

The first run downloads the chosen Whisper model from the Hugging Face Hub (needs internet once); subsequent runs are offline.

Examples:

# Transcribe one file -> creates video.srt beside it
autosubs talk.mp4

# Recurse a directory, English translation, larger model
autosubs ./season1/ --translate --model large-v3

# Force source language, write into a separate folder, regenerate existing
autosubs clip.mkv --language ja --output-dir ./subs --overwrite

Options

Flag Default Description
--preset normal Quality/speed preset: high (best quality, slowest), normal (balanced), low (fastest, lower quality).
--model preset's model Override the Whisper model chosen by --preset (tiny, base, small, medium, large-v3, large-v3-turbo, distil-large-v3).
--translate off Translate speech to English (Whisper task=translate).
--language auto Force source language ISO code (en, ja, ...). Omit to auto-detect.
--device auto auto (CUDA if available, else CPU), cpu, or cuda.
--compute-type int8 CTranslate2 compute type (int8, int8_float16, float16).
--output-dir beside input Directory for .srt files.
--overwrite off Regenerate .srt files that already exist (default: skip).

By default, inputs whose target .srt already exists are skipped; pass --overwrite to regenerate.

Notes

  • Audio is decoded directly from video containers via PyAV (bundled with faster-whisper), so system FFmpeg is not required. If installed, ffmpeg is used as a fallback for exotic codecs PyAV cannot open.
  • On macOS only the CPU backend is available (no Metal GPU support in CTranslate2); int8 keeps it reasonably fast.
  • Presets tune the model and decode settings together. The model is the dominant quality/speed lever:
    • high — large-v3. Best accuracy. Slowest (on CPU, roughly 1x realtime or slower, so a 42-minute episode can take an hour+).
    • normal — large-v3-turbo. Near-large-v3 accuracy at a fraction of the time. The default.
    • low — small. Fastest, clearly lower accuracy. All presets enable VAD, word-level timestamps, and the anti-repetition / anti-hallucination settings that keep lines from being missed or stuck. --model overrides a preset's model if you want a different size.

Release files for autosubs-whisper 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for autosubs-whisper 0.2.0
File Size Uploaded
autosubs_whisper-0.2.0.tar.gz 80.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for autosubs-whisper 0.2.0
File Interpreter ABI Platform
autosubs_whisper-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 93.7 kB

Release files / autosubs_whisper-0.2.0.tar.gz

Download URL autosubs_whisper-0.2.0.tar.gz
Size 80.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7bcda27757cbe96bb389ad7302adb0568521252818e31f28ba00fe932b97c514
BLAKE2b-256 checksum
How to use checksums
31b6964403cc6083855f0d26867aeed4e45e9c8c2d46782f799718c96c75f997
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / autosubs_whisper-0.2.0-py3-none-any.whl

Download URL autosubs_whisper-0.2.0-py3-none-any.whl
Size 13.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
54eaebff5c68908dfc81dee93dfa1f02cf19b8c8d544217ef61e60c24323042c
BLAKE2b-256 checksum
How to use checksums
2d2b27f8825c6984b1fe3030a4275a4fe3b50dee3648347f862006f513bf60b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

0.1.0

2 release 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