欢迎访问 AI Skills Video ! 海量优质视频教程,助你提升技能。

Python自动化剪辑进阶:基于pyJianYingDraft+MCP协议,实现AI自然语言一键生成视频草稿

老张 2026年6月17日 10 次阅读
手动剪辑短视频重复工作多、效率低下,本文手把手带你玩转开源剪辑库pyJianYingDraft,讲解草稿生成、轨道编辑、字幕特效等原生用法。同时基于MCP模型上下文协议封装剪辑工具,打通大模型与剪映草稿能力,实现一句话自然语言指令自动拆解视频脚本、零代码生成剪映工程文件。全文附带完整可运行代码、版本兼容避坑方案,帮你快速搭建无人值守AI自动化视频剪辑流水线

一、前言:告别手动剪辑,搭建AI全自动视频生产流水线

短视频时代下,批量混剪、口播视频、图文视频的制作存在大量重复机械操作:新建剪映草稿、拖拽素材、添加字幕、配置转场与背景音乐,人工剪辑效率极低。市面上大部分自动化剪辑工具要么收费、要么封装度太高无法二次开发,而开源Python库pyJianYingDraft可以直接生成剪映原生草稿文件,无需调用剪映UI接口,纯文件层面实现视频工程自动化。

但原生pyJianYingDraft需要开发者手写代码配置视频轨道、字幕、素材,依旧存在代码编写成本。本文将结合MCP(Model Context Protocol,模型上下文协议),搭建标准化MCP服务,让大模型直接调用剪辑能力,最终实现:一句话自然语言指令 → AI自动拆解视频脚本 → MCP服务调用pyJianYingDraft → 自动生成剪映可直接打开的草稿文件,全程零代码人工干预。

前置关键兼容提醒(必看)

  1. 剪映版本限制:剪映6.0及以上版本加密了草稿核心文件draft_content.json,pyJianYingDraft仅完美兼容剪映专业版5.9及以下版本,模板模式、草稿复用功能必须使用低版本剪映;
  2. 系统限制:草稿自动导出功能仅支持Windows系统,Mac/Linux仅支持生成草稿JSON文件;
  3. 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 获取剪映草稿目录(关键步骤)

  1. 打开剪映专业版5.9,点击右上角【设置】-【草稿位置】,复制本地草稿文件夹路径

  2. 新建一个空白草稿,获取该草稿下的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标准工具接口,对外暴露两个核心能力:

  1. create_normal_draft:根据时长、素材路径、标题文案,生成普通视频草稿

  2. 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 整体流程

  1. 用户输入自然语言指令:生成一条20秒科普短视频,标题为Python自动化剪辑,三段字幕分别介绍库功能、MCP协议、全链路效果

  2. 大模型解析自然语言,拆解参数:视频时长、字幕列表、标题文案

  3. 大模型通过MCP协议调用本地剪映服务,传入结构化参数

  4. MCP服务调用pyJianYingDraft生成草稿JSON文件

  5. 用户打开剪映,直接编辑/导出成品视频

5.2 对接本地大模型完整示例(通义千问本地版)

只需给大模型配置系统提示词,让大模型自动识别视频生成需求并调用MCP工具,无需人工干预参数填写:

系统Prompt:你是视频剪辑助手,用户输入视频制作需求后,你需要自动拆解视频时长、视频素材、音频素材、字幕文案,调用MCP工具create_subtitle_draft生成剪映草稿,不需要用户补充任何参数,直接完成视频草稿生成。

5.3 最终效果

用户一句话输入需求 → AI自动拆解脚本 → MCP调用剪辑接口 → 1秒生成完整剪映草稿,彻底告别手动剪辑,适合批量短视频矩阵、课程视频、口播视频自动化生产。


六、常见坑点与解决方案(避坑指南)

问题现象 原因 解决方案
写入草稿后剪映无变化 剪映后台占用draft_content.json文件,文件写入被拦截 运行代码前彻底关闭剪映,写完文件后再打开
模板模式加载草稿报错 使用了剪映6.0+加密草稿文件 降级安装剪映5.9专业版,不要自动更新
音频/视频素材黑屏、无声音 素材路径为中文/空格,剪映解析失败 素材路径统一使用纯英文、无空格路径
MCP服务调用超时 stdio通信端口占用 重启服务,关闭占用终端,使用标准stdio通信

七、进阶拓展方向

  1. 模板批量生成:基于现有爆款视频草稿作为模板,AI一键替换字幕和素材,批量产出同质化短视频

  2. 自动字幕识别:接入ASR语音识别,自动提取音频字幕,再通过MCP写入剪映草稿

  3. 自动导出视频:Windows环境下开启pyJianYingDraft自动化导出接口,实现草稿生成→自动导出成品视频全无人化

  4. Web可视化面板:搭配FastAPI搭建网页端,用户网页输入文案即可AI生成视频草稿


八、总结

本文完成了从pyJianYingDraft基础剪辑能力MCP协议服务封装,再到大模型自然语言驱动全自动视频草稿生成的完整链路。核心优势在于:

  • 纯文件级操作,稳定无弹窗、无UI模拟点击,兼容性极强

  • 依托MCP标准化协议,可无缝对接所有主流大模型,复用性极高

  • 开源免费,无任何剪辑次数限制,适合个人创作者与工作室批量生产视频

虽然目前受限于剪映新版本加密,暂时无法适配6.0以上版本,但对于自动化剪辑刚需用户来说,降级剪映版本即可稳定使用,是目前Python自动化剪映剪辑最优开源方案之一。


目前 pyJianYingDraft 现有的局限:

  • 暂时不支持复合片段(草稿内置草稿)
  • 暂时不支持内置音效

附录:项目完整代码仓库

pyJianYingDraft官方仓库:https://gitee.com/cellinlab/pyJianYingDraft