🎬 CapCutAPI - Enterprise Video Editing Automation Platform
🚀 Open source CapCut API tool with MCP (Model Context Protocol) support
🎯 Project Overview
CapCutAPI is a powerful enterprise-grade video editing automation platform built with Python, providing complete CapCut video editing capabilities. Through dual interfaces of HTTP API and MCP protocol, it enables seamless integration with AI assistants and automation tools.
🏆 Core Advantages
|
🎬 Professional Video Editing
|
🤖 AI Smart Integration
|
|
🔌 Dual API Interfaces
|
🌍 Cross-platform Compatibility
|
🎥 Product Showcase
🚀 Core Features
📋 Feature Matrix
| Feature Module | HTTP API | MCP Protocol | Description |
|---|---|---|---|
| 🎬 Draft Management | ✅ | ✅ | Create, read, modify, save CapCut draft files |
| 🎥 Video Processing | ✅ | ✅ | Multi-format video import, editing, transitions, effects |
| 🔊 Audio Editing | ✅ | ✅ | Audio tracks, volume control, audio effects |
| 🖼️ Image Processing | ✅ | ✅ | Image import, animations, masks, filters |
| 📝 Text Editing | ✅ | ✅ | Multi-style text, shadows, backgrounds, animations |
| 📄 Subtitle System | ✅ | ✅ | SRT subtitle import, styling, time sync |
| ✨ Effects Engine | ✅ | ✅ | Visual effects, filters, transition animations |
| 🎭 Sticker System | ✅ | ✅ | Sticker assets, position control, animation effects |
| 🎯 Keyframes | ✅ | ✅ | Property animations, timeline control, easing functions |
| 📊 Media Analysis | ✅ | ✅ | Video duration detection, format analysis |
🛠️ API Interface Overview
📡 HTTP API Endpoints (9 endpoints)
🎬 Draft Management ├── POST /create_draft # Create new draft └── POST /save_draft # Save draft file
🎥 Media Assets ├── POST /add_video # Add video material ├── POST /add_audio # Add audio material └── POST /add_image # Add image material
📝 Text Content ├── POST /add_text # Add text elements └── POST /add_subtitle # Add subtitle files
✨ Effect Enhancement ├── POST /add_effect # Add visual effects └── POST /add_sticker # Add sticker elements
🔧 MCP Tool Set (11 tools)
🎬 Project Management ├── create_draft # Create video project └── save_draft # Save project file
🎥 Media Editing ├── add_video # Video track + transition effects ├── add_audio # Audio track + volume control └── add_image # Image assets + animation effects
📝 Text System ├── add_text # Multi-style text + shadow background └── add_subtitle # SRT subtitles + styling
✨ Advanced Features ├── add_effect # Visual effects engine ├── add_sticker # Sticker animation system ├── add_video_keyframe # Keyframe animations └── get_video_duration # Media information retrieval
🛠️ Quick Start
📋 System Requirements
| 🐍 Python Environment | Python 3.8.20+ (Recommended 3.10+) |
| 🎬 CapCut Application | CapCut International or JianYing China |
| 🎵 FFmpeg | For media file processing and analysis |
| 💾 Storage Space | At least 2GB available space |
⚡ One-Click Installation
# 1. Clone the project
git clone https://github.com/sun-guannan/CapCutAPI.git
cd CapCutAPI
# 2. Create virtual environment (recommended)
python -m venv venv-capcut
source venv-capcut/bin/activate # Linux/macOS
# or venv-capcut\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txt # HTTP API basic dependencies
pip install -r requirements-mcp.txt # MCP protocol support (optional)
# 4. Configuration
cp config.json.example config.json
# Edit config.json as needed
🚀 Start Services
|
🌐 HTTP API Server Default port: 9001 |
🔧 MCP Protocol Server Supports stdio communication |
🔧 MCP Integration Guide
📱 Client Configuration
Create or update mcp_config.json configuration file:
{
"mcpServers": {
"capcut-api": {
"command": "python3",
"args": ["mcp_server.py"],
"cwd": "/path/to/CapCutAPI",
"env": {
"PYTHONPATH": "/path/to/CapCutAPI",
"DEBUG": "0"
}
}
}
}
🧪 Connection Testing
# Test MCP connection
python test_mcp_client.py
# Expected output
✅ MCP server started successfully
✅ Retrieved 11 available tools
✅ Draft creation test passed
🎯 MCP Featured Functions
| Feature | Description | Example |
|---|---|---|
| 🎨 Advanced Text Styling | Multi-color, shadow, background effects | shadow_enabled: true |
| 🎬 Keyframe Animation | Position, scale, opacity animations | property_types: ["scale_x", "alpha"] |
| 🔊 Audio Precision Control | Volume, speed, audio effects | volume: 0.8, speed: 1.2 |
| 📱 Multi-format Support | Various video dimensions and formats | width: 1080, height: 1920 |
| ⚡ Real-time Processing | Instant draft updates and previews | Millisecond response time |
💡 Usage Examples
🌐 HTTP API Examples
📹 Adding Video Material
import requests
# Add background video
response = requests.post("http://localhost:9001/add_video", json={
"video_url": "https://example.com/background.mp4",
"start": 0,
"end": 10,
"width": 1080,
"height": 1920,
"volume": 0.8,
"transition": "fade_in"
})
print(f"Video addition result: {response.json()}")
📝 Creating Styled Text
import requests
# Add title text
response = requests.post("http://localhost:9001/add_text", json={
"text": "🎬 Welcome to CapCutAPI",
"start": 0,
"end": 5,
"font": "Arial",
"font_color": "#FFD700",
"font_size": 48,
"shadow_enabled": True,
"background_color": "#000000"
})
print(f"Text addition result: {response.json()}")
🔧 MCP Protocol Examples
🎯 Complete Workflow
# 1. Create new project
draft = mcp_client.call_tool("create_draft", {
"width": 1080,
"height": 1920
})
draft_id = draft["result"]["draft_id"]
# 2. Add background video
mcp_client.call_tool("add_video", {
"video_url": "https://example.com/bg.mp4",
"draft_id": draft_id,
"start": 0,
"end": 10,
"volume": 0.6
})
# 3. Add title text
mcp_client.call_tool("add_text", {
"text": "AI-Driven Video Production",
"draft_id": draft_id,
"start": 1,
"end": 6,
"font_size": 56,
"shadow_enabled": True,
"background_color": "#1E1E1E"
})
# 4. Add keyframe animation
mcp_client.call_tool("add_video_keyframe", {
"draft_id": draft_id,
"track_name": "main",
"property_types": ["scale_x", "scale_y", "alpha"],
"times": [0, 2, 4],
"values": ["1.0", "1.2", "0.8"]
})
# 5. Save project
result = mcp_client.call_tool("save_draft", {
"draft_id": draft_id
})
print(f"Project saved: {result['result']['draft_url']}")
Testing with REST Client
You can use the rest_client_test.http file with REST Client IDE plugins for HTTP testing.
Draft Management
Calling save_draft generates a folder starting with dfd_ in the server's current directory. Copy this folder to your CapCut draft directory to access the generated draft in CapCut.
📚 Documentation Center
| 📖 Document Type | 🌍 Language | 📄 Link | 📝 Description |
|---|---|---|---|
| MCP Complete Guide | 🇺🇸 English | MCP Documentation | Complete MCP server usage guide |
| MCP User Manual | 🇨🇳 Chinese | MCP 中文文档 | Detailed Chinese usage instructions |
| API Reference | 🇺🇸 English | example.py | Code examples and best practices |
| REST Testing | 🌐 Universal | rest_client_test.http | HTTP interface test cases |
🌟 Enterprise Features
🔒 Security
- 🛡️ Input Validation: Strict parameter validation and type checking
- 🔐 Error Handling: Comprehensive exception catching and error reporting
- 📊 Logging: Detailed operation logs and debug information
- 🚫 Resource Limits: Memory and processing time limit protection
⚡ Performance Optimization
- 🚀 Async Processing: Non-blocking concurrent operation support
- 💾 Memory Management: Smart resource recycling and caching mechanisms
- 📈 Batch Processing: Efficient batch operation interfaces
- ⏱️ Response Time: Millisecond-level API response speed
🔧 Scalability
- 🔌 Plugin Architecture: Modular functionality extension support
- 🌐 Multi-protocol: HTTP REST and MCP dual protocol support
- ☁️ Cloud Deployment: Containerization and microservice architecture ready
- 📊 Monitoring Integration: Complete performance monitoring and metrics collection
🤝 Community & Support
💬 Get Help
| 📞 Support Channel | 🔗 Link | 📝 Description |
|---|---|---|
| 🐛 Bug Reports | GitHub Issues | Bug reports and feature requests |
| 💡 Feature Suggestions | Discussions | Community discussions and suggestions |
| 📖 Documentation Feedback | Documentation Issues | Documentation improvement suggestions |
| 🔧 Technical Support | Stack Overflow | Technical Q&A |
🎯 Contributing Guide
We welcome all forms of contributions!
# 1. Fork the project
git clone https://github.com/your-username/CapCutAPI.git
# 2. Create feature branch
git checkout -b feature/amazing-feature
# 3. Commit changes
git commit -m 'Add amazing feature'
# 4. Push branch
git push origin feature/amazing-feature
# 5. Create Pull Request
📈 Project Statistics
📄 License
This project is open source under the Apache 2.0 License. See LICENSE file for details.
Apache License 2.0
Copyright (c) 2025 CapCutAPI Contributors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

