🚀 Developed by MCB AI · YouTube · OpenClaw 101
Full pipeline: Playwright download → Whisper transcribe → AI translate → TTS → FFmpeg ASS subtitle mix.
Skill này chạy hoàn toàn local — không upload video hay dữ liệu lên server nào ngoài các TTS provider bạn chọn.
CredentialBắt buộcMô tảdouyin_cookies.txt✅ CóCookie Douyin để tải videoElevenLabs API key❌ KhôngChỉ cần nếu chọn ElevenLabs TTS
⚠️ Cookie session = quyền truy cập tài khoản Douyin. Không chia sẻ file này với ai.
Khuyến nghị:
skills/douyin-dubber/douyin_cookies.txt (local only, không commit lên git)Override đường dẫn cookie bằng env var:
bash
# macOS / Linux
export DOUYIN_COOKIE_FILE=/path/to/your/cookies.txt
# Windows
$env:DOUYIN_COOKIE_FILE = "C:\your\path\cookies.txt"
bash
python --version # Python 3.11.x hoặc cao hơn
💡 Tải tại https://www.python.org/downloads/ — tick "Add Python to PATH" khi cài
bash
pip install playwright
python -m playwright install chromium
bash
pip install openai-whisper
⚠️ Cần FFmpeg trên PATH — tải tại https://ffmpeg.org/download.html
bash
pip install gtts
bash
pip install edge-tts
vi-VN-HoaiMyNeural (Nữ) / vi-VN-NamMinhNeural (Nam)Export cookies từ Chrome/Edge khi đang đăng nhập Douyin:
Cách 1 — Extension EditThisCookie:
douyin_cookies.txt trong thư mục skillCách 2 — DevTools (không cần extension):
www.douyin.comsessionid, sid_tt, ttwid, uid_tt, odin_ttsessionid=xxx; sid_tt=yyy; ttwid=zzz; ...douyin_cookies.txt⚠️ Cookie hết hạn sau ~60 ngày → export lại khi bị lỗi download
Windows (PowerShell):
powershell
$env:PYTHONIOENCODING = "utf-8"
python skills/douyin-dubber/scripts/dubber.py `
"https://www.douyin.com/video/XXXXX" `
--lang Vietnamese `
--outdir "./dubbed_output"
macOS / Linux:
bash
PYTHONIOENCODING=utf-8 python skills/douyin-dubber/scripts/dubber.py \
"https://www.douyin.com/video/XXXXX" \
--lang Vietnamese \
--outdir "./dubbed_output"
Script sẽ hỏi chọn TTS provider:
text
═══════════════════════════════════════════════════════
🔊 CHỌN GIỌNG ĐỌC (TTS PROVIDER)
═══════════════════════════════════════════════════════
1️⃣ gTTS (Google TTS) ← Mặc định
2️⃣ ElevenLabs ← Chất lượng cao nhất
3️⃣ Edge TTS (Microsoft Neural) ← Tự nhiên, miễn phí
👉 Nhập 1, 2 hoặc 3 (mặc định = 1):
Chi phíMiễn phíChất lượng⭐⭐API keyKhông cầnbash
echo 1 | python dubber.py "URL" --lang Vietnamese --outdir "./output"
Chi phíMiễn phíChất lượng⭐⭐⭐⭐API keyKhông cầnbash
# Giọng nữ HoaiMy
echo "3\n1" | python dubber.py "URL" --lang Vietnamese --outdir "./output"
# Giọng nam NamMinh
echo "3\n2" | python dubber.py "URL" --lang Vietnamese --outdir "./output"
Danh sách giọng Việt:
Voice IDGiới tínhPhong cáchvi-VN-HoaiMyNeuralNữGiọng Bắc, tự nhiênvi-VN-NamMinhNeuralNamGiọng Bắc, trầm
Chi phí10k chars free/thángChất lượng⭐⭐⭐⭐⭐API keyBắt buộc
Giọng có sẵn:
#TênGiới tính1RachelNữ2BellaNữ3AntoniNam4JoshNam5ArnoldNam6ElliNữ7CustomNhập Voice ID
Lấy API key:
ArgDefaultDescriptionurlrequiredDouyin/TikTok URL--langVietnameseTarget language--whisper-modelmediumtiny/base/small/medium/large--outdir``.Output directory--original-vol0.10Volume audio gốc (0–1)--skip-download—Dùng video có sẵn--skip-transcribe—Dùng SRT có sẵn--translated-srt—Dùng SRT đã dịch
bash
# Bỏ qua download
python dubber.py URL --skip-download ./work/original.mp4
# Bỏ qua transcribe
python dubber.py URL --skip-download video.mp4 --skip-transcribe original.srt
# Chỉ chạy TTS + mix
python dubber.py URL --skip-download video.mp4 --translated-srt translated.srt
text
dubbed_output/
├── dubbed_original.mp4 ← Video output cuối cùng
└── dubber_work/
├── original.mp4 ← Video gốc
├── original.srt ← Transcript (Whisper)
├── translated.srt ← SRT đã dịch
├── subtitle.ass ← ASS subtitle file
├── tts_track.mp3 ← TTS track hoàn chỉnh
└── silence.mp3 ← Base silence track
LỗiNguyên nhânFixUnicodeEncodeErrorTerminal không encode UTF-8Set PYTHONIOENCODING=utf-8``No video URL foundCookie hết hạnExport lại cookie từ browser401 Unauthorized ElevenLabsAPI key sai hoặc thiếu permissionTạo key mới với permission TTS402 Payment Required ElevenLabsHết creditsNạp thêm hoặc dùng account khácEdge TTS retry nhiều lầnRate limitBình thường, script tự retryASS subtitle không hiển thịFont path saiCần Arial font tại /System/Library/Fonts hoặc C:/Windows/Fonts
gTTSEdge TTSElevenLabsChi phíMiễn phíMiễn phí10k chars free/thángChất lượng⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Tốc độNhanhChậm (rate limit)NhanhAPI keyKhôngKhôngCóTiếng ViệtTốtRất tốtXuất sắcKhuyến nghịTest nhanhDùng thường xuyênVideo quan trọng
Made with ❤️ by MCB AI · YouTube · OpenClaw 101