Skip to main content

Transcribe videos to ASS subtitle files using faster-whisper

Project description

whispersub

Transcribe video files to ASS subtitle files using faster-whisper (Whisper large-v3-turbo).

  • Batch mode: pass multiple files or directories to scan recursively
  • Surround-sound audio extraction (dialogue-channel aware)
  • Word-level timestamps with balanced line breaking
  • Per-word confidence colour coding in the terminal

Requirements

Python 3.10+. Works on Linux, Windows, and macOS. No system FFmpeg needed — PyAV bundles its own.

Install

pip install whispersub

GPU acceleration (Linux/Windows — requires an NVIDIA GPU with CUDA 12):

pip install whispersub[gpu]

Without [gpu], whispersub falls back to CPU automatically if CUDA is unavailable.

Usage

# Single file — writes movie.en.ass alongside the video
whispersub movie.mkv

# Explicit output directory
whispersub movie.mkv --output-dir ~/subs

# Whole directory, force overwrite
whispersub /media/shows --force

# File with multiple audio tracks — list tracks first, then pick one
whispersub series.mkv                     # error lists available tracks
whispersub series.mkv --audio-track 2

Options

Option Default Description
--audio-track N auto Audio track index (required if the file has multiple tracks)
--colour-by probability Per-word terminal colour coding: probability or duration
--font-size N 48 Font size (1280×720 canvas; player scales to actual resolution)
--force off Overwrite existing subtitle files
--limit N Stop after N segments per video (useful for testing)
--max-line-count N 2 Maximum subtitle lines per card
--max-line-width N 36 Maximum characters per line
--max-threads N all cores CPU thread limit
--output-dir DIR alongside video Write all subtitle files to this directory

Output

Subtitle files are named <stem>.<language>.ass, e.g. movie.en.ass. The detected language comes from Whisper.

Each ASS file contains hidden Comment: events carrying word-level timestamp data in JSON, so the raw timing can be recovered by tooling without re-transcribing.

Licence

MIT

Project details


Download files

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

Source Distribution

whispersub-1.0.2.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

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

whispersub-1.0.2-py3-none-any.whl (13.3 kB view details)

Uploaded Python 3

File details

Details for the file whispersub-1.0.2.tar.gz.

File metadata

  • Download URL: whispersub-1.0.2.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for whispersub-1.0.2.tar.gz
Algorithm Hash digest
SHA256 4277664ae265fafc30964a118fe2ff95b7b9bdc516418906d00aa73c0d0495c6
MD5 73c99251ae64d3c77ee0fbb8de3580d3
BLAKE2b-256 ddc655f38341a2bd261441f49c777d7a59dd9979f4faf0693eb7e22f8210495e

See more details on using hashes here.

Provenance

The following attestation bundles were made for whispersub-1.0.2.tar.gz:

Publisher: publish.yml on zvea/whispersub

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

File details

Details for the file whispersub-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: whispersub-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 13.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for whispersub-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 75c88c1475fd85251855f8b5737d7533d65aca02c7f7d59613fbda72404201e5
MD5 0926c888c3b0bf90d627d4e4490eb33f
BLAKE2b-256 8c8d12a104c2aaf33bb171a29decc859711c0dcab4bea1ee55f79f71832c77b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for whispersub-1.0.2-py3-none-any.whl:

Publisher: publish.yml on zvea/whispersub

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page