Python自动化剪辑进阶:基于pyJianYingDraft+MCP协议,实现AI自然语言一键生成视频草稿
一、前言:告别手动剪辑,搭建AI全自动视频生产流水线
短视频时代下,批量混剪、口播视频、图文视频的制作存在大量重复机械操作:新建剪映草稿、拖拽素材、添加字幕、配置转场与背景音乐,人工剪辑效率极低。市面上大部分自动化剪辑工具要么收费、要么封装度太高无法二次开发,而开源Python库pyJianYingDraft可以直接生成剪映原生草稿文件,无需调用剪映UI接口,纯文件层面实现视频工程自动化。
但原生pyJianYingDraft需要开发者手写代码配置视频轨道、字幕、素材,依旧存在代码编写成本。本文将结合MCP(Model Context Protocol,模型上下文协议),搭建标准化MCP服务,让大模型直接调用剪辑能力,最终实现:一句话自然语言指令 → AI自动拆解视频脚本 → MCP服务调用pyJianYingDraft → 自动生成剪映可直接打开的草稿文件,全程零代码人工干预。
前置关键兼容提醒(必看)
- 剪映版本限制:剪映6.0及以上版本加密了草稿核心文件
draft_content.json,pyJianYingDraft仅完美兼容剪映专业版5.9及以下版本,模板模式、草稿复用功能必须使用低版本剪映; - 系统限制:草稿自动导出功能仅支持Windows系统,Mac/Linux仅支持生成草稿JSON文件;
- Python版本:推荐Python3.8 / Python3.11,兼容性最佳。
二、核心技术栈简介
2.1 pyJianYingDraft 是什么?
pyJianYingDraft是一款轻量级开源剪映草稿生成Python库,核心原理是直接构造剪映工程的JSON配置文件,无需逆向剪映接口、无需模拟鼠标点击,支持以下核心能力:
从零创建空白视频草稿,自定义分辨率、帧率、视频时长
添加视频/图片/音频素材,配置播放速度、淡入淡出、关键帧
一键添加字幕文本、花字、气泡样式,批量导入SRT字幕
添加转场、滤镜、视频特效,自定义轨道层级
模板复用:加载现有剪映草稿作为模板,一键替换素材和字幕
2.2 MCP协议作用
MCP是Anthropic推出的标准化大模型工具调用协议,统一了大模型与本地工具、本地服务的通信格式。我们搭建基于MCP的剪映草稿服务后,任意支持MCP的大模型(Claude、豆包、通义千问本地部署版)都可以标准化调用剪辑能力,无需单独写Prompt适配不同大模型,实现AI与剪辑工具的解耦。
三、环境准备与pyJianYingDraft基础实操
3.1 安装依赖库
# 安装核心剪辑库
pip install pyJianYingDraft
# 安装MCP协议依赖
pip install mcp python-dotenv
3.2 获取剪映草稿目录(关键步骤)
打开剪映专业版5.9,点击右上角【设置】-【草稿位置】,复制本地草稿文件夹路径
新建一个空白草稿,获取该草稿下的
draft_content.json完整路径,后续代码需要写入该文件实现草稿更新
3.3 基础入门:Python代码手动生成第一条剪映草稿
下面编写极简示例代码,创建一个10s、1080P视频,添加视频素材、背景音乐、一行标题字幕,完整还原基础剪辑流程:
import pyJianYingDraft as draft
from pyJianYingDraft import TrackType, TextStyle
# 1. 基础视频参数配置
DRAFT_JSON_PATH = r"C:UsersXXXJianyingPro Draftstest_draftdraft_content.json"
VIDEO_WIDTH, VIDEO_HEIGHT = 1920, 1080
DURATION = 10 # 视频总时长10秒
# 2. 初始化草稿工程
script = draft.ScriptFile(width=VIDEO_WIDTH, height=VIDEO_HEIGHT, duration=DURATION)
# 3. 添加视频主轨道素材
video_material = draft.VideoMaterial("demo_video.mp4")
script.add_segment(video_material, track_type=TrackType.video, start=0, duration=10)
# 4. 添加背景音乐,配置3s淡入淡出
audio_material = draft.AudioMaterial("demo_bgm.mp3")
audio_seg = script.add_segment(audio_material, track_type=TrackType.audio, start=0, duration=10)
audio_seg.fade_in = 3
audio_seg.fade_out = 3
audio_seg.volume = 0.6
# 5. 添加标题字幕,自定义字体样式
text_seg = script.add_text(
content="pyJianYingDraft自动化剪辑测试",
start=1, duration=8,
style=TextStyle(font_size=60, color=(1,1,1), bold=True)
)
# 6. 写入剪映草稿文件,直接生效
script.dump(DRAFT_JSON_PATH)
print("草稿生成成功!打开剪映即可查看")
3.4 运行效果
代码运行完成后,重启剪映打开对应草稿,即可看到已经自动排布好的视频、音频、字幕,无需任何手动拖拽,纯代码完成剪辑。
四、搭建MCP服务:封装剪映草稿生成能力
原生代码需要手动修改参数,接下来我们将pyJianYingDraft的剪辑能力封装为MCP标准工具接口,对外暴露两个核心能力:
create_normal_draft:根据时长、素材路径、标题文案,生成普通视频草稿
create_subtitle_draft:传入文案列表,自动拆分字幕、生成口播视频草稿
4.1 完整MCP服务端代码
from mcp.server import Server
from mcp.types import Tool, TextContent
import pyJianYingDraft as draft
from pyJianYingDraft import TrackType, TextStyle
import os
# 初始化MCP服务
app = Server("jianying-draft-mcp-server")
# 全局配置
DRAFT_SAVE_PATH = r"C:UsersXXXJianyingPro Draftsai_auto_draftdraft_content.json"
VIDEO_RESOLUTION = (1920, 1080)
# 注册工具1:创建基础视频草稿
@app.tool()
async def create_normal_draft(video_path: str, audio_path: str, title_text: str, duration: int) -> str:
"""
根据传入素材和文案,自动生成剪映视频草稿
:param video_path: 本地视频素材路径
:param audio_path: 本地背景音乐路径
:param title_text: 视频标题
:param duration: 视频总时长(秒)
:return: 草稿生成结果
"""
# 初始化草稿
script = draft.ScriptFile(width=VIDEO_RESOLUTION[0], height=VIDEO_RESOLUTION[1], duration=duration)
# 添加视频轨道
video_mat = draft.VideoMaterial(video_path)
script.add_segment(video_mat, TrackType.video, start=0, duration=duration)
# 添加音频轨道
audio_mat = draft.AudioMaterial(audio_path)
audio_seg = script.add_segment(audio_mat, TrackType.audio, start=0, duration=duration)
audio_seg.fade_in = 2
audio_seg.fade_out = 2
audio_seg.volume = 0.5
# 添加标题字幕
script.add_text(
content=title_text,
start=0.5, duration=duration-1,
style=TextStyle(font_size=72, color=(1,1,1), bold=True)
)
# 保存草稿
script.dump(DRAFT_SAVE_PATH)
return f"✅ AI视频草稿生成成功,时长:{duration}s,标题:{title_text},草稿路径:{DRAFT_SAVE_PATH}"
# 注册工具2:一键生成多字幕口播视频草稿
@app.tool()
async def create_subtitle_draft(video_path: str, audio_path: str, subtitle_list: list, duration: int) -> str:
"""
批量添加多行字幕,生成口播类视频草稿
:param video_path: 背景视频路径
:param audio_path: 配音音频路径
:param subtitle_list: 字幕文案数组
:param duration: 总时长
:return: 生成结果
"""
script = draft.ScriptFile(*VIDEO_RESOLUTION, duration=duration)
script.add_segment(draft.VideoMaterial(video_path), TrackType.video, 0, duration)
script.add_segment(draft.AudioMaterial(audio_path), TrackType.audio, 0, duration)
# 自动均分时间添加多行字幕
single_sub_duration = duration / len(subtitle_list)
for idx, text in enumerate(subtitle_list):
start_time = idx * single_sub_duration
script.add_text(
content=text,
start=start_time,
duration=single_sub_duration,
style=TextStyle(font_size=48, color=(1,1,1))
)
script.dump(DRAFT_SAVE_PATH)
return f"✅ 口播视频草稿生成成功,共添加{len(subtitle_list)}条字幕"
# 启动MCP服务
if __name__ == "__main__":
import asyncio
asyncio.run(app.run_stdio_async())
4.2 MCP客户端调用测试
我们编写极简MCP客户端,模拟大模型调用工具,传入自然语言对应的参数,实现自动化调用:
from mcp.client.stdio import stdio_client
from mcp import ClientSession
async def main():
async with stdio_client(["python", "jianying_mcp_server.py"]) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 调用MCP工具:生成一条15秒的短视频草稿
result = await session.call_tool(
"create_normal_draft",
arguments={
"video_path": "bg_video.mp4",
"audio_path": "vlog_bgm.mp3",
"title_text": "Python自动化剪辑实战分享",
"duration": 15
}
)
print(result.content[0].text)
if __name__ == "__main__":
import asyncio
asyncio.run(main())
五、全链路打通:大模型+MCP+pyJianYingDraft AI自动生成视频草稿
5.1 整体流程
用户输入自然语言指令:生成一条20秒科普短视频,标题为Python自动化剪辑,三段字幕分别介绍库功能、MCP协议、全链路效果
大模型解析自然语言,拆解参数:视频时长、字幕列表、标题文案
大模型通过MCP协议调用本地剪映服务,传入结构化参数
MCP服务调用pyJianYingDraft生成草稿JSON文件
用户打开剪映,直接编辑/导出成品视频
5.2 对接本地大模型完整示例(通义千问本地版)
只需给大模型配置系统提示词,让大模型自动识别视频生成需求并调用MCP工具,无需人工干预参数填写:
系统Prompt:你是视频剪辑助手,用户输入视频制作需求后,你需要自动拆解视频时长、视频素材、音频素材、字幕文案,调用MCP工具create_subtitle_draft生成剪映草稿,不需要用户补充任何参数,直接完成视频草稿生成。
5.3 最终效果
用户一句话输入需求 → AI自动拆解脚本 → MCP调用剪辑接口 → 1秒生成完整剪映草稿,彻底告别手动剪辑,适合批量短视频矩阵、课程视频、口播视频自动化生产。
六、常见坑点与解决方案(避坑指南)
| 问题现象 | 原因 | 解决方案 |
|---|---|---|
| 写入草稿后剪映无变化 | 剪映后台占用draft_content.json文件,文件写入被拦截 | 运行代码前彻底关闭剪映,写完文件后再打开 |
| 模板模式加载草稿报错 | 使用了剪映6.0+加密草稿文件 | 降级安装剪映5.9专业版,不要自动更新 |
| 音频/视频素材黑屏、无声音 | 素材路径为中文/空格,剪映解析失败 | 素材路径统一使用纯英文、无空格路径 |
| MCP服务调用超时 | stdio通信端口占用 | 重启服务,关闭占用终端,使用标准stdio通信 |
七、进阶拓展方向
模板批量生成:基于现有爆款视频草稿作为模板,AI一键替换字幕和素材,批量产出同质化短视频
自动字幕识别:接入ASR语音识别,自动提取音频字幕,再通过MCP写入剪映草稿
自动导出视频:Windows环境下开启pyJianYingDraft自动化导出接口,实现草稿生成→自动导出成品视频全无人化
Web可视化面板:搭配FastAPI搭建网页端,用户网页输入文案即可AI生成视频草稿
八、总结
本文完成了从pyJianYingDraft基础剪辑能力到MCP协议服务封装,再到大模型自然语言驱动全自动视频草稿生成的完整链路。核心优势在于:
纯文件级操作,稳定无弹窗、无UI模拟点击,兼容性极强
依托MCP标准化协议,可无缝对接所有主流大模型,复用性极高
开源免费,无任何剪辑次数限制,适合个人创作者与工作室批量生产视频
虽然目前受限于剪映新版本加密,暂时无法适配6.0以上版本,但对于自动化剪辑刚需用户来说,降级剪映版本即可稳定使用,是目前Python自动化剪映剪辑最优开源方案之一。
目前 pyJianYingDraft 现有的局限:
- 暂时不支持复合片段(草稿内置草稿)
- 暂时不支持内置音效
附录:项目完整代码仓库
pyJianYingDraft官方仓库:https://gitee.com/cellinlab/pyJianYingDraft