Install
openclaw skills install @shylamb-token/ai-recreatorAI video repurposing × digital human dubbing web tool. Paste a Douyin/TikTok link → wait 3 minutes → get a digital human video that looks like YOU said it. 5-step pipeline: download → transcribe → rewrite → TTS → digital human.
openclaw skills install @shylamb-token/ai-recreatorPaste a Douyin/TikTok short video link → wait ~3 minutes → get a video that looks like YOU said it
Paste link → [Download] → [Transcribe] → [AI Rewrite] → [TTS] → [Digital Human] → Deliver
yt-dlp Whisper LLM edge-tts SadTalker
cd ai-recreator
# 1️⃣ Install dependencies
pip install -r backend/requirements.txt
# 2️⃣ Configure (at minimum set your API Key)
cp backend/.env.example backend/.env # then edit .env with your key
# 3️⃣ Start
cd backend && uvicorn main:app --host 0.0.0.0 --port 8080
Open http://localhost:8080 in your browser → paste a Douyin link → click "Start" → wait 3 minutes → get your digital human video.
| Dependency | Purpose | Install |
|---|---|---|
| FFmpeg | Audio/video processing | apt install ffmpeg or brew install ffmpeg |
| yt-dlp | Short video download | pip install yt-dlp (included in requirements) |
| PyTorch | Whisper/SadTalker inference | See official docs (CPU works but is slower) |
modules/downloader.py)yt-dlp from Douyin/TikTok/KuaishouDOWNLOAD_PROXY env) for cloud server bypassmodules/transcriber.py)base modelmodules/rewriter.py)modules/tts_engine.py)modules/digital_human.py)| Method | Path | Description |
|---|---|---|
| POST | /api/tasks | Submit a creation task (video URL) |
| POST | /api/tasks/upload-video | Upload a video file directly (skip download) |
| POST | /api/tasks/upload-audio | Upload an audio file directly (skip download & transcribe) |
| GET | /api/tasks/{task_id} | Query task progress |
| POST | /api/tasks/{task_id}/confirm | Confirm rewritten text → start TTS |
| POST | /api/tasks/{task_id}/upload-video | Upload reference video for lip-sync |
| GET | /api/output/{task_id}/{filename} | Download generated video |
| GET | / | Web UI |
curl -X POST http://localhost:8080/api/tasks \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://www.douyin.com/video/xxxxx",
"custom_prompt": "Make it more casual and humorous",
"tts_voice": "zh-CN-XiaoxiaoNeural"
}'
curl -X POST http://localhost:8080/api/tasks/upload-video \
-F "file=@/path/to/your/video.mp4" \
-F "custom_prompt=Use a friendly tone"
.env)| Variable | Default | Description |
|---|---|---|
| OPENAI_API_KEY | "" | For AI rewriting; leave empty for rule-based fallback |
| OPENAI_BASE_URL | "" | Compatible OpenAI third-party API |
| OPENAI_MODEL | gpt-4o-mini | Model for rewrites |
| WHISPER_MODEL | base | tiny/base/small/medium/large |
| TTS_ENGINE | edge | edge/melotts/cosyvoice |
| DIGITAL_HUMAN_MODE | sadtalker | sadtalker/wav2lip/api |
| DOWNLOAD_PROXY | "" | HTTP proxy for download (e.g. http://127.0.0.1:7890) |
ai-recreator/
├── README.md # Project overview
├── SKILL.md # This skill definition
├── skill-card.md # ClawHub listing card
├── .gitignore # Git ignore rules
├── cookies.example.txt # Cookie template (optional)
├── backend/
│ ├── main.py # FastAPI entry point
│ ├── config.py # Config management
│ ├── models.py # Data models
│ ├── task_manager.py # Task queue manager
│ ├── pipeline.py # Pipeline orchestrator
│ ├── requirements.txt # Python dependencies
│ ├── .env.example # Config template (copy to .env)
│ ├── assets/ # Static assets
│ │ └── default_avatar.png
│ └── modules/
│ ├── file_handler.py # File upload handling
│ ├── downloader.py # Video downloader
│ ├── transcriber.py # Speech-to-text
│ ├── rewriter.py # AI text rewriting
│ ├── tts_engine.py # Text-to-speech
│ └── digital_human.py # Digital human generator
├── frontend/
│ ├── index.html # Single-page Web UI
│ └── static/ # Static assets
├── references/
│ ├── faq.md # FAQ (20 questions)
│ ├── anti-patterns.md # Anti-patterns guide
│ ├── quickstart.md # Quick start guide
│ └── privacy.md # Privacy & data handling
└── data/
├── downloads/ # Download cache
├── audio/ # TTS output
├── transcripts/ # Transcription results
├── rewrites/ # Rewrite results
├── output/ # Final videos
└── temp/ # Temporary files
data/temp/ cleaned after task completion.env, never logged| User Type | How to Use |
|---|---|
| Individual creators | Deploy locally, paste links via Web UI |
| Developers | Integrate via REST API |
| Teams | Deploy on internal server, share across members |
| Non-technical users | Use a deployed instance (if available) |
references/faq.md — 20 FAQs + edge casesreferences/anti-patterns.md — 7 common anti-patterns + fixesreferences/quickstart.md — 10-second quick startreferences/privacy.md — Privacy & data handling