Skip to main content

Add missing subtitles. Recursive video-to-SRT transcription using whisper.cpp

Project description

NOTE: This is a vibe coded app. Proceed with caution.

add_subs_to_videos

You have video files but no subtitles. This tool fixes that.

It crawls a directory recursively, transcribes every video it finds using whisper.cpp, and writes a .srt sidecar file next to each one. Already-transcribed files are skipped, so re-running is fast and safe.

Install

Every option below gives you both the add_subs_to_videos CLI command and an "Add Subs to Videos" desktop GUI.

Ubuntu (snap — recommended, no prerequisites):

sudo snap install add-subs-to-videos

Installs the add-subs-to-videos CLI plus an "Add Subs to Videos" launcher in your applications menu (add-subs-to-videos-gui).

macOS (.dmg — no prerequisites): Download Add Subs to Videos-<version>.dmg from GitHub Releases, open it, and drag the app to Applications. The DMG also includes a standalone add_subs_to_videos CLI binary and an Install CLI.command helper — double-click it to symlink the CLI into /usr/local/bin so add_subs_to_videos --help works from a terminal.

Metal GPU acceleration is auto-detected on macOS — no extra steps needed.

Any platform with Python 3.12+ (via pip/pipx):

pip install "add-subs-to-videos[gui]"
# or
pipx install "add-subs-to-videos[gui]"

This installs both the add_subs_to_videos CLI and the add-subs-to-videos-gui GUI entry point. Drop [gui] if you only want the CLI.

pywhispercpp compiles a C++ extension at install time (requires CMake — brew install cmake ffmpeg on macOS). On Linux with CUDA:

WHISPER_CUDA=1 pip install "add-subs-to-videos[gui]"

Usage

CLI:

add_subs_to_videos /path/to/videos
add_subs_to_videos /path/to/videos --model large-v3 --language en
add_subs_to_videos /path/to/videos --force   # re-transcribe even if .srt exists

movie.mp4movie.srt, placed in the same directory. Supports .mp4, .mkv, .avi, .mov, .m4v, .webm, and more.

GUI: Launch "Add Subs to Videos" from your applications menu, or run add-subs-to-videos-gui from a terminal. Drag a folder of videos in, pick a model and language, and watch progress live.

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

add_subs_to_videos-0.1.2.tar.gz (50.8 kB view details)

Uploaded Source

Built Distribution

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

add_subs_to_videos-0.1.2-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file add_subs_to_videos-0.1.2.tar.gz.

File metadata

  • Download URL: add_subs_to_videos-0.1.2.tar.gz
  • Upload date:
  • Size: 50.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for add_subs_to_videos-0.1.2.tar.gz
Algorithm Hash digest
SHA256 7c6563cda1842ae7ccaf22082492b53659a4e9b109bffea23858ea3142380f92
MD5 56124b677196b7665c254dd64b8f4d10
BLAKE2b-256 7b713ec1f6b21de8164d2570c4065148243688e1e437413db0cdaa16b4919e51

See more details on using hashes here.

File details

Details for the file add_subs_to_videos-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: add_subs_to_videos-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 14.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for add_subs_to_videos-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 0b46d5f156571fb676388b42ee3a29afb95ba42ae3e2771b89b6174af0bdbdf3
MD5 4e564eaf9b9a92744eec03cdbf2864cc
BLAKE2b-256 13958b27b624e19504e1712fa15228f1a8241eca0384ec16e3b125e5e9763032

See more details on using hashes here.

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