Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Moved

NEW PACKAGE PAGE


Package for voice over subtitles:

  • with the ability to embed in video,
  • audio ducking,
  • dynamic voice changer for a single track. Add --voice-set-anchor at the beginning of the subtitle line. (Applies to all subsequent ones)

pip install -U FastDub

Install for Ubuntu

sudo apt update -y && sudo apt upgrade -y

sudo apt install python3 python3-pip ffmpeg espeak libxml2-dev libxslt1-dev

; libxml for translator functions

sudo python3 -m pip install -U pip setuptools wheel

sudo python3 -m pip install -U FastDub

Install all dependencies

pip install FastDub[ALL] # default

Youtube support

Youtube argument group

pip install FastDub[YT]

Process all videos from a channel

To get the channel id if it only has a username, run the JS code in the browser console:

document.querySelector("body>link").href

Then, in the input parameter, you can pass a link to the channel (with an id, not with a username) or a string of the format "c/CHANNEL_ID"

For example:

python -m fastdub -i "c/UCi-5OZ2tYuwMLIcEyOsbdRA" -yt

YouTube Search argument group

That the input data was a request to YouTube, they must begin with "?".

For Example:

python -m fastdub -i "?#python" -yt -yts-l 5

YouTube Upload argument group

pip install FastDub[YTU]

To download, you need to go to credentials (Create a new project if needed) > + Create credentials > OAuth Client ID > Desktop App

After filling in the required fields, DOWNLOAD JSON format and save to a working folder under the name client_secrets.json

  • Specifying the -ytu-ps argument as non-private may result in processing errors, but this was not observed during testing.

  • Please note that video uploads require a large amount of quota ( default has 10,000 per day)

Subtitles translate

Translate argument group

pip install FastDub[TR]

Usage

python -m fastdub --help

usage: fastdub [-h] [-rc {0,1,2}] [-ra | --cleanup-audio | -n-ra | --no-cleanup-audio] [-l LANGUAGE]
               [-tc THREADS_COUNT] -i INPUT [-vf VIDEO_FORMAT] [-sf SUBTITLES_FORMAT] [-En EXCLUDE [EXCLUDE ...]]
               [-Eu EXCLUDE_UNDERSCORE] [-sc | --side-chain | -n-sc | --no-side-chain] [-sc-msl MIN_SILENCE_LEN]
               [-sc-st SILENCE_THRESH] [-sc-gdo GAIN_DURING_OVERLAY]
               [-v {microsoft irina desktop - russian,microsoft zira desktop - english united states),microsoft david desktop - english (united states,aleksandr-hq,arina,artemiy,evgeniy-eng,evgeniy-rus,lyubov,marianna,mikhail,pavel,tatiana,victoria,vitaliy,volodymyr,yuriy}]
               [-a ALIGN] [-v-set-a VOICE_SET_ANCHOR] [-ll {trace,debug,verbose,info,warning,error,fatal,panic,quiet}]
               [-y | --confirm | -n-y | --no-confirm] [-af AUDIO_FORMAT] [-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 {alibaba,argos,baidu,bing,caiyun,deepl,google,iciba,iflytek,itranslate,lingvanex,mglip,niutrans,papago,reverso,sogou,tencent,translateCom,utibet,yandex,youdao}]

fastdub is a tool for dubbing videos by subtitle files.

options:
  -h, --help            show this help message and exit
  -rc {0,1,2}, --remove-cache {0,1,2}
                        Remove all cache (_cached_texts directory) files
                                0 - No remove cache
                                1 - Delete cache before voice acting
                                2 - Delete cache after voice acting (default)
  -ra, --cleanup-audio, -n-ra, --no-cleanup-audio
                        Remove result audio if video exists (default: False)
  -l LANGUAGE, --language LANGUAGE
                        Subtitles language (ru)
  -tc THREADS_COUNT, --threads-count THREADS_COUNT
                        Process count to download (pass to cpu count, < 2 to disable)
                                *N = N * cpu count

Input:
  -i INPUT, --input INPUT
                        Input directory/YouTube Playlist/Video URL.
  -vf VIDEO_FORMAT, --video-format VIDEO_FORMAT
                        Video format (default: .mp4).
  -sf SUBTITLES_FORMAT, --subtitles-format SUBTITLES_FORMAT
                        Subtitles format (default: .srt).

Audio Ducking:
  -sc, --side-chain, -n-sc, --no-side-chain
                        Enable audio side chain compress (ducking) (default: True)
  -sc-msl MIN_SILENCE_LEN, --min-silence-len MIN_SILENCE_LEN, --attack MIN_SILENCE_LEN
                        Minimum silence length in ms (default: 100)
  -sc-st SILENCE_THRESH, --silence-thresh SILENCE_THRESH
                        Silence threshold in dB
  -sc-gdo GAIN_DURING_OVERLAY, --gain-during-overlay GAIN_DURING_OVERLAY
                        Gain during overlay in dB (default: -11)

Voicer:
  -v {microsoft irina desktop - russian,microsoft zira desktop - english (united states),microsoft david desktop - english (united states),aleksandr-hq,arina,artemiy,evgeniy-eng,evgeniy-rus,lyubov,marianna,mikhail,pavel,tatiana,victoria,vitaliy,volodymyr,yuriy}, --voice {microsoft irina desktop - russian,microsoft zira desktop - english (united states),microsoft david desktop - english (united states),aleksandr-hq,arina,artemiy,evgeniy-eng,evgeniy-rus,lyubov,marianna,mikhail,pavel,tatiana,victoria,vitaliy,volodymyr,yuriy}
                        SAPI voice for voice acting.
  -a ALIGN, --align ALIGN
                        Audio fit align (divisor)
                                1 = right
                                2 = center (default)
  -v-set-a VOICE_SET_ANCHOR, --voice-set-anchor VOICE_SET_ANCHOR
                        Anchor indicating voice actor change (default "!:")

FFMpeg Output:
  -ll {trace,debug,verbose,info,warning,error,fatal,panic,quiet}, --loglevel {trace,debug,verbose,info,warning,error,fatal,panic,quiet}
                        FFMpegWrapper loglevel
  -y, --confirm, -n-y, --no-confirm
                        Don't ask for confirmation (default: True)
  -af AUDIO_FORMAT, --audio-format AUDIO_FORMAT
                        Out audio files format (default wav)

Terminal Output:
  -tb, --traceback, -n-tb, --no-traceback
                        Show debug traceback (default: False)

YouTube:
  -yt, --youtube
  -ak API_KEYS [API_KEYS ...], --api-keys API_KEYS [API_KEYS ...]
                        Youtube API key/s

YouTube Search:
  -yts, --youtube-search
                        The input data is a query for searching on YouTube. (Adds "?" at the start of input)
  -yts-l YOUTUBE_SEARCH_LIMIT, --youtube-search-limit YOUTUBE_SEARCH_LIMIT
                        Sets limit to the number of results. Defaults to 20.
  -yts-rg YOUTUBE_SEARCH_REGION, --youtube-search-region YOUTUBE_SEARCH_REGION
                        Sets the result region. Defaults to "US".

YouTube Upload:
  -ytu, --youtube-upload
                        yt_upload video to YouTube channel after voice acting.
  -ytu-ps {private,public,unlisted}, --privacy-status {private,public,unlisted}
                        Video privacy status (If not private, errors are possible)
  -ytu-t, --youtube-upload-translate
                        Translate title and description on upload. (+ Arguments from translate argument group)

Translate:
  -tr, --translate      Translate input subtitles files
  --rewrite-srt, --no-rewrite-srt
                        Rewrite input subtitles files.
                        If not, add "_" to the beginning of the original subtitle file. (default: False)
  -ts {alibaba,argos,baidu,bing,caiyun,deepl,google,iciba,iflytek,itranslate,lingvanex,mglip,niutrans,papago,reverso,sogou,tencent,translateCom,utibet,yandex,youdao}, --translate-service {alibaba,argos,baidu,bing,caiyun,deepl,google,iciba,iflytek,itranslate,lingvanex,mglip,niutrans,papago,reverso,sogou,tencent,translateCom,utibet,yandex,youdao}
                        Subtitle translation service. (default google)

If the voice set after "!:" is not selected during voiceover, clear the cache with the -rc argument

Example

python -m fastdub -i DirToDub -v "Yuriy" --no-sidechain -sf vtt -vf mkv

All files in the folder will be voices (*.mkv, *.vtt)

Default is mp4 video and srt subtitles.

Then: name and name2 will be announced, and the results will be saved to a folder with the appropriate name.

YT Example

python -m fastdub -yt -i https://youtu.be/DD5UKQggXTc -v "Yuriy" -l ru

YouTube Search Example

python -m fastdub -yt -yts -i "#annoyingorange" -l ru

Translate Example

python -m fastdub -i DirToDub -tr -ts iciba -l ru

Default service is Google.

Other

The fastdub.utils module stores helper functions.

python -m pydoc -w fastdub

You can write your issues on GitHub in English or in Russian.

Release files for PyFastDub 3.1.3

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

Source distribution (sdist)

Source distribution for PyFastDub 3.1.3
File Size Uploaded
PyFastDub-3.1.3.tar.gz 42.0 kB Details

Built distribution (wheel)

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

Total release size: 92.5 kB

Release files / PyFastDub-3.1.3.tar.gz

Download URL PyFastDub-3.1.3.tar.gz
Size 42.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0afb1380e8901f270604b9ddede2b75d155f1b9a39fba9e79763cb391e21f811
BLAKE2b-256 checksum
How to use checksums
7eeed6ae227e2fc339fcaefe66bc0e4fd6aea25fc0f0f64cd71278d173b2538f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.8

Release files / PyFastDub-3.1.3-py3-none-any.whl

Download URL PyFastDub-3.1.3-py3-none-any.whl
Size 50.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d7fac2fb8ac1d3cf86b3913a5fca56916b687e0ea50003d0a07478943959fe71
BLAKE2b-256 checksum
How to use checksums
547e9960a773e0265ba8d80768cdfabaed51f55c41c6ce6e718047da15c47aa7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.8
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