This repository uses ffmpeg
and OpenAI's Whisper to automatically generate and overlay subtitles on any video.
You'll also need to install ffmpeg
, which is available from most package managers:
# on Ubuntu or Debian
sudo apt update && sudo apt install ffmpeg
# on MacOS using Homebrew (https://brew.sh/)
brew install ffmpeg
# on Windows using Chocolatey (https://chocolatey.org/)
choco install ffmpeg
After cloning the project and cd into the directory, first install the model for whisper and choose small, the default model,
if you choose a another model you will need to change too when you call the script.
npx whisper-node download
The following command will generate a subtitled/video.mp4
file contained the input video with overlayed subtitles.
node index.mjs /path/to/video.mp4 -o subtitled/
The default setting (which selects the small
model) works well for transcribing English. You can optionally use a bigger model for better results (especially with other languages). The available models are tiny
, tiny.en
, base
, base.en
, small
, small.en
, medium
, medium.en
, large
.
node index.mjs /path/to/video.mp4 --model medium
Adding --task translate
will translate the subtitles into English:
node index.mjs /path/to/video.mp4 --task translate
This script is open-source and licensed under the MIT License. For more details, check the LICENSE file.