tiktok-viral-factory
Enables automated generation and publishing of TikTok Shop Affiliate videos using 7 AI agents. Integrates research, script writing, video production, and publishing through the MCP protocol.
README
<p align="center"> <img src="https://raw.githubusercontent.com/vanszs/tiktok-viral-factory/main/docs/banner.png" alt="TikTok Viral Factory" width="800"> </p>
<h1 align="center"> TikTok Viral Factory</h1>
<p align="center"> <b>Multi-Agent AI System that generates, produces, and publishes TikTok Shop Affiliate videos — fully automated.</b><br> <sub>7 AI Agents · LangGraph · Kling AI · ElevenLabs · MCP Protocol</sub> </p>
<p align="center"> <a href="https://github.com/vanszs/tiktok-viral-factory/stargazers"><img src="https://img.shields.io/github/stars/vanszs/tiktok-viral-factory?style=for-the-badge&color=FF0050&logo=github" alt="Stars"></a> <a href="https://github.com/vanszs/tiktok-viral-factory/network/members"><img src="https://img.shields.io/github/forks/vanszs/tiktok-viral-factory?style=for-the-badge&color=25F4EE&logo=github" alt="Forks"></a> <a href="https://github.com/vanszs/tiktok-viral-factory/blob/main/LICENSE"><img src="https://img.shields.io/github/license/vanszs/tiktok-viral-factory?style=for-the-badge&color=white" alt="License"></a> <a href="#"><img src="https://img.shields.io/badge/Python-3.11+-blue?style=for-the-badge&logo=python&logoColor=white" alt="Python"></a> <a href="#"><img src="https://img.shields.io/badge/LangGraph-Powered-orange?style=for-the-badge" alt="LangGraph"></a> </p>
<p align="center"> <a href="#-quick-start"><img src="https://img.shields.io/badge/Quick_Start-FF0050?style=for-the-badge" alt="Quick Start"></a> <a href="#-architecture"><img src="https://img.shields.io/badge/Architecture-25F4EE?style=for-the-badge" alt="Architecture"></a> <a href="plan.md"><img src="https://img.shields.io/badge/Full_Plan_(1200_lines)-white?style=for-the-badge" alt="Full Plan"></a> </p>
What is this?
A fully autonomous AI workforce that runs 7 specialized agents working together to:
- Research trending TikTok Shop products in Beauty & Personal Care
- Plan viral content strategies based on TikTok algorithm signals
- Write hook-optimized scripts with karaoke-style word timestamps
- Generate product hero shots using Kling AI (cinematic, not AI slop)
- Compose full videos with ElevenLabs voiceover, stock footage, text overlays, SFX
- Optimize SEO (hashtags, captions, posting time)
- Publish to TikTok via Content Posting API
You provide the API keys. It does everything else.
Input: TikTok Shop product URL
Output: Ready-to-post 15-60s TikTok video + optimized caption + hashtags
[!NOTE] This is not a "type your prompt, get a video" wrapper. This is a multi-agent system with real market research, content strategy, deduplication, cost tracking, and TikTok compliance built in.
Why this exists
| Problem | Solution |
|---|---|
| Creating TikTok content manually = 2-4 hours/video | 100 videos/month, fully automated |
| AI-generated videos get flagged as "AI slop" and throttled | Mixed pipeline: stock footage + AI hero shots + text overlays = human-feeling |
| Most AI video tools produce generic, soulless content | 7 specialized agents — each one does ONE thing well |
| TikTok Shop Affiliate is lucrative but hard to scale | Beauty & Personal Care niche = #1 GMV category, 15-25% commission |
| GPU requirements block most developers | Cloud APIs (Kling, ElevenLabs) — runs on any laptop |
Architecture
YOU (CLI)
│
┌───────────▼───────────┐
│ SUPERVISOR │
│ (Marketing Director)│
│ Routes + monitors │
└───────────┬───────────┘
│
┌──────────────────┼──────────────────┐
│ │ │
▼ ▼ ▼
RESEARCH STRATEGY ANALYTICS
Market Intel Content Plan Performance
│ │
│ ┌──────┴──────┐
│ ▼ ▼
│ SCRIPT SEO AGENT
│ WRITER (Hashtags,
│ Captions)
│ │
└───────────▼
PRODUCER
(Video Engine)
Kling AI + Stock +
ElevenLabs + FFmpeg
│
▼
PUBLISHER
(Upload to TikTok)
┌────────────────────────────────┐
│ MCP BRIDGE │
│ Client ↔ Server │
│ Connect external tools │
│ Expose agents as MCP tools │
└────────────────────────────────┘
7 Agents
| Agent | Role | Tools |
|---|---|---|
| Supervisor | Marketing Director — routes tasks, monitors quality | LLM + Router |
| Research | Trending products, competitor analysis, market intel | LLM + TikTok Research |
| Strategy | Content calendar, hook library, posting schedule | LLM + Trend DB |
| Script Writer | 15-60s scripts with word timestamps, hook optimization | LLM |
| SEO | Hashtags, captions, posting time, TikTok algorithm signals | LLM |
| Producer | Video generation — Kling AI + stock footage + ElevenLabs TTS + FFmpeg | Kling, Pixabay, Pexels, ElevenLabs, FFmpeg |
| Publisher | Upload to TikTok, or export package for manual upload | TikTok API |
| Analytics | Track views, engagement, revenue, optimize strategy | LLM + Analytics DB |
Video Pipeline (Mixed Approach)
The key insight: pure AI-generated videos get throttled by TikTok. Our mixed approach feels human:
Stock Footage (60%) AI Product Shots (20%) Overlays (20%)
───────────────────────── ──────────────────────── ─────────────────────
Pixabay/Pexels Kling AI 2.5 Turbo Pro FFmpeg
"woman applying cream" "serum bottle, slow-mo Text overlays
"close-up skincare routine" cinematic, 9:16" Subtitles (karaoke)
"glowing skin result" $0.07/sec via fal.ai SFX (whoosh, ding)
Video Output Example
[0-3s] HOOK: Stock footage + bold text overlay + whoosh SFX
[3-8s] PROBLEM: Stock footage + voiceover "Punya masalah kulit kusam?"
[8-18s] PRODUCT: Kling AI hero shot + ingredient callouts + voiceover
[18-25s] PROOF: Stock "glowing skin" + voiceover "Coba ini..."
[25-30s] CTA: Text overlay "Link di bio!" + product image + sparkle SFX
Tech Stack
| Layer | Technology | Why |
|---|---|---|
| Framework | LangGraph | Supervisor pattern, native streaming, persistence |
| LLM | OpenAI-compatible API | Works with any provider (OpenAI, Groq, Together, local) |
| AI Video | Kling 2.5 Turbo Pro (fal.ai) | Best e-commerce product shots, $0.07/sec |
| Stock Footage | Pixabay + Pexels | FREE, HD, 100+ req/min |
| Voice | ElevenLabs eleven_multilingual_v2 |
Natural voice, Indonesian support, word timestamps |
| Video Engine | FFmpeg + moviepy | Text overlays, composition, SFX, subtitles |
| Image Tools | rembg | Background removal for product photos |
| Protocol | MCP (Model Context Protocol) | Connect to any MCP server, expose agents as tools |
| Config | Pydantic Settings | Type-safe, .env driven |
Cost Breakdown (100 videos/month)
| Service | Cost | Notes |
|---|---|---|
| Kling AI | ~$35/mo | 5 sec product shots × 100 videos |
| ElevenLabs | ~$10/mo | 30s voiceover × 100 videos |
| LLM API | ~$5/mo | OpenAI-compatible, varies by provider |
| Stock Footage | FREE | Pixabay + Pexels |
| Total | ~$50/month |
Quick Start
Prerequisites
- Python 3.11+
- FFmpeg installed (
apt install ffmpeg/brew install ffmpeg) - API keys: OpenAI-compatible LLM, fal.ai (Kling), ElevenLabs, Pixabay, Pexels
1. Clone & Install
git clone https://github.com/vanszs/tiktok-viral-factory.git
cd tiktok-viral-factory
pip install -r requirements.txt
2. Configure
cp .env.example .env
# Edit .env with your API keys
3. Run
# Generate a single video from a TikTok Shop product
python -m workflows.faceless --product-url "https://shop.tiktok.com/..."
# Batch generate from product list
python -m workflows.batch --input products.json --count 10
# Clip pipeline (transform existing content)
python -m workflows.clipping --source video.mp4
# Start MCP server (expose agents as tools)
python -m mcp_bridge.server
# Connect to external MCP tools
python -m mcp_bridge.client --config mcp_servers.json
4. Output
output/
├── video_20240115_143022.mp4 # Final video (1080x1920, 9:16)
├── video_20240115_143022.srt # Subtitle file
├── metadata.json # Product data, SEO, timestamps
└── thumbnail.jpg # Auto-generated thumbnail
Project Structure
tiktok-viral-factory/
├── agents/ # 7 LangGraph agent nodes
├── config/
│ ├── prompts/ # System prompts for each agent
│ └── settings.py # Pydantic settings (60+ config fields)
├── mcp_bridge/
│ ├── client.py # Connect to external MCP servers
│ └── server.py # Expose agents as MCP tools
├── models/
│ └── schemas.py # 22 Pydantic models (state, products, videos)
├── tools/ # Image search, Kling, TTS, FFmpeg, SEO
├── utils/
│ └── llm.py # OpenAI-compatible LLM factory
├── workflows/ # 3 pipelines: faceless, clipping, batch
├── fonts/ # Custom .ttf for text overlays
├── sfx/ # Sound effects (whoosh, ding, sparkle)
├── output/ # Generated videos + metadata
├── plan.md # Full 1200-line implementation plan
└── .env.example # All config fields documented
Key Features
- Anti-AI-Slop: Mixed pipeline (stock + AI hero shots + overlays) avoids TikTok's AI content throttling
- Content Deduplication: Hash-based tracking prevents generating duplicate content across runs
- Cost Tracking: Real-time budget monitoring per video and monthly cap ($50 default)
- Kling AI Fallback: If AI video fails, automatically falls back to static product image with FFmpeg zoom + sparkle
- Smart Stock Search: Searches vertical first → smart crop → letterbox → pan&scan for any orientation
- Word-Level Subtitles: ElevenLabs timestamps enable karaoke-style subtitle sync
- MCP Protocol: Full MCP Bridge — connect to any tool ecosystem, expose your agents to other systems
- Multi-LLM: Works with OpenAI, Groq, Together AI, Ollama, or any OpenAI-compatible API
Roadmap
- [x] Architecture & PRD (1200+ lines)
- [x] Data models (22 Pydantic schemas)
- [x] Configuration system (60+ typed settings)
- [ ] MCP Bridge (Client + Server)
- [ ] Tools layer (Kling, ElevenLabs, Pixabay, FFmpeg)
- [ ] 7 Agents implementation
- [ ] 3 Video pipelines (faceless, clipping, batch)
- [ ] TikTok Content Posting API integration
- [ ] Analytics dashboard
- [ ] Batch mode (100 videos/month)
- [ ] Multi-niche support (beyond Beauty & Personal Care)
Contributing
PRs welcome! Areas where help is most needed:
- More niches: Extend beyond Beauty & Personal Care
- More stock sources: Additional free stock footage APIs
- Better prompts: Improve agent system prompts with real-world results
- UI: Simple web dashboard for monitoring
License
MIT — do whatever you want with it. If you make money from it, that's the point.
<p align="center"> <b>If this helps you build your TikTok empire, drop a star.</b><br> <a href="https://github.com/vanszs/tiktok-viral-factory/stargazers"> <img src="https://img.shields.io/badge/Star_this_repo-FF0050?style=for-the-badge&logo=github" alt="Star"> </a> </p>
<p align="center"> <sub>Built with caffeine and LangGraph in Indonesia</sub> </p>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.