Skip to content

Repository files navigation

CapDraft TTS — free CapCut TTS for your captions

CapDraft TTS

English · Tiếng Việt · 中文 · 日本語

Generate 120+ CapCut TTS voices for free from your project captions
and attach the audio back into the same CapCut draft.

Latest release Stars License Python Platform

capcut text-to-speech free desktop split-merge


Why this exists

CapCut already has many TTS voices. CapDraft TTS lets you use them on your captions without paid third-party TTS services.

  • 120+ CapCut voices
  • No extra paid voice API
  • Reads captions from your CapCut project and writes audio back into the same timeline
  • Handles large projects (thousands of captions) with a virtualized table and slimmer drafts for export
  • Split a huge project into 2 CapCut-openable halves, export each in CapCut, then merge the videos with ffmpeg
  • Exports captions to .srt
  • No project copy for normal TTS attach — no manual drag-and-drop of audio files

You still need CapCut Desktop and internet. “Free” means the app does not require a separate paid TTS service.

Features

Area What you get
Project Open CapCut project folder or draft_content.json (incl. modern Timelines/ layout)
Captions Virtualized table for ~5k rows; search; select all; hide empty / without TTS / errors only
Voices Online catalog (~120+), language filter + search
TTS Clip speed, pitch mode, replace or skip existing TTS, optional cache, native head trim/fade
Pipeline Parallel generation, cancel, throttled progress log, backup + atomic write with rollback
Export helpers Split in 2 CapCut-safe projects · Merge videos (ffmpeg stream-copy, re-encode fallback) · Export SRT
UI VI / EN / ZH / JA · Windows light/dark/auto theme

Requirements

  • Windows 10/11
  • CapCut Desktop + a project that already has captions
  • Internet (TTS + voice catalog)
  • ffmpeg on PATH (or set ffmpeg_path in config) — only needed for Merge videos
  • ffprobe optional — fallback for cached audio duration

Source development needs uv.

Install

Prebuilt (recommended)

  1. Download the latest CapDraft-TTS-v*-windows-x64.zip from Releases
  2. Unzip and run CapDraft-TTS.exe
  3. Choose a CapCut project and start; normal use does not require editing config.json
Get-FileHash .\CapDraft-TTS-v1.2.4-windows-x64.zip -Algorithm SHA256
# compare with the .sha256 file from the release

From source

git clone https://github.com/KhoaDayy/CapDraft-TTS.git
cd CapDraft-TTS
uv sync --group dev
Copy-Item config.example.json config.json
uv run python main.py

Optional config.json keys (see config.example.json):

Key Purpose
capcut_projects_path Default folder when browsing projects (e.g. CapCut drafts or AutoVideo outputs)
ffmpeg_path Path to ffmpeg for video merge
ffprobe_path Path to ffprobe
tts_chunk_size / tts_parallel_chunks / tts_download_workers Performance
language / theme_mode UI

Usage

Generate TTS

  1. Choose project → CapCut project folder or draft_content.json
  2. Review / filter captions
  3. Pick language + voice
  4. Set clip speed, pitch, existing-TTS policy
  5. Select captions → Generate and attach TTS
  6. Close the project in CapCut before write, then reopen CapCut to check the timeline

Large projects that fail CapCut export

When CapCut export is too heavy (e.g. multi-hour fail on a big timeline):

  1. Load the project in CapDraft TTS (after TTS is attached is fine)
  2. Click Split in 2 → creates <name>_part1 and <name>_part2 next to the source (source is not modified)
  3. Fully quit CapCut, reopen, open each part → Export video
  4. Click Merge videos → pick part1 then part2 exports → save one MP4 (ffmpeg; stream-copy when possible)

Important

Close CapCut (or at least the project) before TTS write or split. CapDraft keeps local backups for TTS writes, but keep your own backup of important drafts.

Export SRT

Export SRT saves non-empty captions from the loaded project to a standard .srt file.

Development

uv run python -m unittest discover -s tests -v
.\build-release.ps1 -Version 1.2.4

Releases: push a v* tag (or run Release workflow_dispatch). CI builds Windows zip + publishes GitHub Release (see .github/workflows/release.yml).

See CONTRIBUTING.md and CHANGELOG.md.

License / legal

  • LICENSE (Apache-2.0)
  • Independent project — not affiliated with CapCut / ByteDance
  • You are responsible for CapCut terms, device/account rules, and content rights
  • QFluentWidgets is GPLv3 for non-commercial use; review licenses before commercial redistribution

About

Free CapCut TTS for project captions — 120+ voices, attach audio back into the same CapCut draft.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages