Skip to main content

FastDub

PyPI version Downloads Python versions License GitHub stars

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]):

  1. Go to Google Cloud Console Credentials.
  2. Create OAuth 2.0 Client ID for Desktop App.
  3. Download the JSON credentials file and place it in your working directory as client_secrets.json.
  4. 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).

  1. Install with Tortoise support:
    pip install "FastDub[tortoise]"
    
  2. 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
    
  3. Tortoise Presets (Quality vs Speed): By default, FastDub uses the fast preset for Tortoise. You can change this using the --tortoise-preset argument:
    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.

Metadata

Release files for fastdub 3.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastdub 3.9.1
File Size Uploaded Provenance
fastdub-3.9.1.tar.gz 25.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fastdub 3.9.1
File Interpreter ABI Platform
fastdub-3.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 57.3 kB

Release files / fastdub-3.9.1.tar.gz

Download URL fastdub-3.9.1.tar.gz
Size 25.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ddfcf4dd8f56437d84584775dfc47bb37b5a5fd4d1e119bb09187dc35e4c8597
BLAKE2b-256 checksum
How to use checksums
f6cd5460362e682a198c544527af3834ebd84abb3b08baa383aa144a43e5a6c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.15 Linux/7.2.9-zen1

Release files / fastdub-3.9.1-py3-none-any.whl

Download URL fastdub-3.9.1-py3-none-any.whl
Size 31.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81ec8ef04ea9350049f2646beb14dfc7fc0bf0f3534633ac3844c4b4aadbd5a3
BLAKE2b-256 checksum
How to use checksums
d8146c180db21f5836dcedd036b5bcf536f5c84703df38299c96957241d41f1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.4.1 CPython/3.13.15 Linux/7.2.9-zen1

Security for fastdub 3.9.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page