FastDub
FastDub is a Python package and command-line utility for automated subtitle voiceovers, video dubbing, audio ducking, dynamic voice changing, subtitle translation, and YouTube integration.
Features
- Automated Video Dubbing: Generate speech from subtitle files (.srt, .vtt) and embed the audio into videos (.mp4, .mkv).
- Audio Ducking (Sidechain Compression): Dynamically lower original background audio level while speech is active.
- Dynamic Voice Changing: Switch voices mid-track using subtitle anchors (
!:). - Subtitle Translation: Auto-translate subtitles to target languages using Google Translate or alternative services.
- YouTube Integration: Download video playlists/channels, search YouTube directly from CLI, and upload dubbed videos back to YouTube with translated titles and descriptions.
- Cross-Platform: Support for SAPI voices on Windows and eSpeak/RHVoice on Linux.
Installation
System Dependencies
Ubuntu / Debian
sudo apt update -y && sudo apt upgrade -y
sudo apt install -y python3 python3-pip ffmpeg espeak libxml2-dev libxslt1-dev
macOS
brew install ffmpeg espeak
Installing FastDub
Via PyPI with pip
# Core package
pip install FastDub
# Install all optional dependencies (Translation + YouTube support)
pip install "FastDub[ALL]"
Extra Feature Bundles
| Extra | Description | Command |
|---|---|---|
TR |
Subtitle translation support | pip install "FastDub[TR]" |
YT |
YouTube downloading and search | pip install "FastDub[YT]" |
YTU |
YouTube video uploading | pip install "FastDub[YTU]" |
tortoise |
Tortoise-TTS engine support (Heavy) | pip install "FastDub[tortoise]" |
ALL |
All optional features combined | pip install "FastDub[ALL]" |
Via Poetry
poetry add fastdub --extras "all"
Quick Start
Basic Local Video Dubbing
To voiceover all videos in a target directory:
fastdub -i ./input_folder -v "Yuriy" --no-sidechain -sf srt -vf mp4
Or using python module invocation:
python -m fastdub -i ./input_folder -l ru
Subtitle Translation
Translate subtitles to Russian before voice acting:
fastdub -i ./input_folder -tr -l ru -ts google
YouTube Download & Dubbing
Process a single YouTube video:
fastdub -yt -i "https://youtu.be/DD5UKQggXTc" -l ru
Process videos from a YouTube Search query:
fastdub -yt -yts -i "#python" -yts-l 5 -l ru
Process an entire YouTube channel:
fastdub -yt -i "c/UCi-5OZ2tYuwMLIcEyOsbdRA" -l ru
YouTube Upload Setup
To upload processed videos to YouTube (FastDub[YTU]):
- Go to Google Cloud Console Credentials.
- Create OAuth 2.0 Client ID for Desktop App.
- Download the JSON credentials file and place it in your working directory as
client_secrets.json. - Run FastDub with upload flags:
fastdub -i ./input_folder -ytu -ytu-ps private -ytu-t
Advanced Usage
Dynamic Voice Anchors
Change the active voice actor for specific sections by inserting anchor tokens in your subtitle file.
Example SRT subtitle content:
1
00:00:01,000 --> 00:00:04,000
!:Yuriy Hello, welcome to this video!
2
00:00:04,500 --> 00:00:08,000
!:Elena Here is the next speaker.
If voice anchors are updated and cached files need to be refreshed, clear the cache using -rc:
fastdub -i ./input_folder -rc 1
Tortoise-TTS Support
FastDub now supports Tortoise-TTS for high-quality voice cloning and text-to-speech. Tortoise generates highly realistic voices but requires significantly more processing power (CUDA is highly recommended).
- Install with Tortoise support:
pip install "FastDub[tortoise]"
- Use the Tortoise engine:
Specify
--tts-engine tortoise. You can use any Tortoise voice preset (e.g.,random,angie,train_atkins) as the voice argument.fastdub -i ./input_folder -te tortoise -v random
- Tortoise Presets (Quality vs Speed):
By default, FastDub uses the
fastpreset for Tortoise. You can change this using the--tortoise-presetargument:fastdub -i ./input_folder -te tortoise -tp high_quality -v angie
Available presets:ultra_fast,fast,standard,high_quality.
Command Line Arguments Reference
usage: fastdub [-h] [-rc {0,1,2}] [-ra | --cleanup-audio | -n-ra | --no-cleanup-audio]
[-ev | --export-video | -n-ev | --no-export-video] [-l LANGUAGE]
[-ll {CRITICAL,FATAL,ERROR,WARN,WARNING,INFO,DEBUG,NOTSET}]
[-tc THREADS_COUNT] -i INPUT [-vf VIDEO_FORMAT] [-sf SUBTITLES_FORMAT]
[-En EXCLUDE [EXCLUDE ...]] [-Eu EXCLUDE_UNDERSCORE]
[-sc | --sidechain | -n-sc | --no-sidechain]
[-sc-args SIDECHAIN_FFMPEG_PARAMS] [-sc-lvl SIDECHAIN_LEVEL_SC]
[-v VOICE] [-a ALIGN] [-v-set-a VOICE_SET_ANCHOR]
[-fll {trace,debug,verbose,info,warning,error,fatal,panic,quiet}]
[-y | --confirm | -n-y | --no-confirm] [-af AUDIO_FORMAT] [-wm WATERMARK]
[-tb | --traceback | -n-tb | --no-traceback] [-yt]
[-ak API_KEYS [API_KEYS ...]] [-yts] [-yts-l YOUTUBE_SEARCH_LIMIT]
[-yts-rg YOUTUBE_SEARCH_REGION] [-ytu]
[-ytu-ps {private,public,unlisted}] [-ytu-t] [-tr] [--rewrite-srt | --no-rewrite-srt]
[-ts TRANSLATE_SERVICE]
Python API Usage
FastDub modules can be imported directly into Python applications:
from fastdub import GlobalSettings, dubber
GlobalSettings.language = "ru"
GlobalSettings.threads_count = 4
# Perform dubbing operation programmatically
dubber.dub(
input_dir="./media",
voice="Yuriy",
export_video=True,
sidechain=True
)
Development & Publishing
FastDub uses Poetry for build backend management.
Build Package
poetry build
Publish Package
poetry publish
Issues & Support
If you encounter any issues or have feature requests, please open an issue on GitHub Issues.
License
Distributed under the MIT License. See LICENSE for details.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastdub-3.9.0.tar.gz.
File metadata
- Download URL: fastdub-3.9.0.tar.gz
- Upload date:
- Size: 25.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.14 Linux/7.1.4-zen1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38c5e6a08d88e9a1bc9c259ba274ae7f6534739382e564c71abcb3347b286f7a
|
|
| MD5 |
b647fec0d2c4d2ba167c1f7d76610953
|
|
| BLAKE2b-256 |
d4920df81762d9f513905b8cb134adfab9fa99511c073dfac1e2f98d85965f19
|
File details
Details for the file fastdub-3.9.0-py3-none-any.whl.
File metadata
- Download URL: fastdub-3.9.0-py3-none-any.whl
- Upload date:
- Size: 30.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.4.1 CPython/3.13.14 Linux/7.1.4-zen1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d50e3fc301cd132323a36fbb9435a127a505d8b4c5202a9853bfc10f2e5832c5
|
|
| MD5 |
63360f739dc4a918d699b262228ac576
|
|
| BLAKE2b-256 |
963c289f9c077be1862071d1542a575a22892f567db46b5a05b6f1d52c38c3e6
|