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.9+. 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.1.tar.gz (17.5 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.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: whispersub-1.0.1.tar.gz
  • Upload date:
  • Size: 17.5 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.1.tar.gz
Algorithm Hash digest
SHA256 464a63eed972bd982624e7c985d6d80cf83094ee53431d25fd105b968c9295b6
MD5 51090cbc47d503631c352ec445b3a637
BLAKE2b-256 87083ef2a8b92ae1ebdbfecbf582a08ba7dae5231b5818c9f6182eaba385ac52

See more details on using hashes here.

Provenance

The following attestation bundles were made for whispersub-1.0.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: whispersub-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.2 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e9c9edcce5881bede5d163bede81d79c20c4f144743fab55e6cf13da9f87002
MD5 3699eb3cc07e150459e9a387bbb70e58
BLAKE2b-256 cf026c75e99aa8fa79736cd2c99b8f867a4d3f0e4485e60a8a82161f3e843dd8

See more details on using hashes here.

Provenance

The following attestation bundles were made for whispersub-1.0.1-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