「剪映」的草稿文件自动化操作工具

支持加载未加密的草稿文件,替换音视频片段的素材,修改文本内容,并将模板草稿中的音视频/文本轨道导入到其他草稿中。可以批量导出草稿,调节导出分辨率和帧率,添加本地视频/图片素材,设置音频淡入淡出效果,以及应用各种特效和滤镜。

一、项目的目的与背景

  • 在视频生产流程里,常常要做大量的素材拼接、文字/字幕、转场、动画、滤镜、特效等处理,这些工作如果人工做非常繁琐。
  • 本项目就是希望让用户用脚本控制“剪映草稿”(即剪映项目的工程文件 /草稿文件),从而自动化地生成、编辑、组合、导出视频。
  • 换句话说,它是「对剪映的工程文件层面做自动化操作」的工具,而不是在视频像素层面做处理(不像 FFmpeg 那样直接操作编码、帧等)。

二、主要功能 / 特性

根据 README 中功能清单,这里是它支持的(或部分支持的)功能摘要:

功能类别能做什么 / 支持什么限制 / 注意点
模板模式加载已有的未加密 draft_content.json 作为模板、替换素材、修改文本内容、将模板轨道导入到另一草稿剪映 6+ 版本对 draft_content.json 加密,目前仅支持剪映 5.9 及以下版本的模板功能
批量导出控制剪映打开指定草稿 + 导出到指定路径 + 调节分辨率 / 帧率等依赖 Windows 下的 GUI 自动化工具(如 uiautomation)且仅支持剪映 6 及以下版本的导出功能
添加素材 / 片段 / 特效 / 滤镜 / 转场 / 动画 / 文字 / 字幕 / 蒙版等能通过脚本向草稿中添加视频 / 图片 / 音频 / 文字片段、设置其持续时长、播放速度、音频淡入淡出、关键帧、旋转/缩放/透明度/滤镜/特效等在模板导入轨道的那个轨道上,目前不能再继续添加新的片段 / 特效(即模板导入的轨道存在修改限制)
轨道操作可以创建多个轨道(视频轨道、音频轨道、特效轨道、滤镜轨道等),并控制轨道顺序多轨道操作时要注意同类型轨道的顺序及片段添加时要指定轨道名或索引
关键帧操作支持对透明度、位置、缩放、旋转、音量等属性添加关键帧目前不支持对滤镜 / 特效参数做关键帧(即特效里参数的变化曲线)
字幕 / 文本可以创建文本片段、控制其样式(字体、颜色、大小、对齐等)、自动换行、导入 SRT 字幕导入字幕只支持 SRT 格式;注意字幕片段如果太短,动画可能表现得不太理想
蒙版支持对视频片段添加线性蒙版、圆形蒙版、羽化、圆角、旋转等设定参数要符合剪映内部的蒙版机制

此外,它也提供了一些便捷方法,比如时间格式可以用字符串 “1.5s” “1h3m12s” 等形式输入,不用每次算微秒。

三、使用环境与限制

这个项目虽然功能丰富,但有不少版本 / 平台 /权限上的限制与注意:

  1. 剪映版本兼容性
    • 模板功能依赖于解密 draft_content.json,而剪映 6+ 版本对这个文件有加密处理,所以模板相关功能目前不支持 6+ 版本草稿。
    • 导出功能在剪映 7+ 版本控件被隐藏的情况下不能用,目前仅支持剪映 6 及以下。
  2. 操作系统兼容性
    • 在 Windows 上能支持草稿生成、模板模式、自动导出(依赖 GUI 自动化)
    • 在 Linux / macOS 上,只支持草稿生成和模板模式,不支持自动导出(因为与剪映 GUI 控件操作相关)
    • 虽然可以生成草稿,但最终的导出仍然需要在 Windows 的剪映客户端上执行。
  3. 权限 / 导出限制
    • 导出功能需用户对剪映有导出权限(不能用需 VIP 才能导出的功能,否则可能出问题 / 死循环)。
    • 导出操作是通过控制剪映窗口、鼠标点击等方式模拟的;这种方式有脆弱性(窗口被遮挡、焦点丢失、意外操作干扰等)
  4. 模板导入轨道的可修改性受限
    • 虽然可以将模板的轨道导入到目标草稿中,但是对于那个导入轨道上的片段,目前不能再对其进行 添加新的特效 / 转场 / 动画等操作,只能读取 / 保留现有内容。

四、使用示例 / 快速上手流程

README 中提供了一个 demo.py 的例子,用来演示如何:

  1. 指定剪映的草稿文件夹路径(通常是 “Jianying Pro Drafts”)
  2. 运行脚本生成一个新草稿
  3. 在剪映客户端中打开就能看到相应的片段、文本、动画等

基本步骤大致是这样:

import pyJianYingDraft as draft

draft_folder = draft.DraftFolder("<你的草稿文件夹路径>")
script = draft_folder.duplicate_as_template("模板草稿", "新草稿")

# 在 script(即新草稿)上做操作,比如添加视频 / 音频 / 文字片段、特效、转场、关键帧等

script.save()

然后(在 Windows 上)可以用:

from pyJianYingDraft import JianyingController, ExportResolution, ExportFramerate

ctrl = draft.JianyingController()
ctrl.export_draft("要导出的草稿名称", "<导出路径>",
                  resolution=ExportResolution.RES_1080P,
                  framerate=ExportFramerate.FR_24)

来控制剪映将草稿导出成视频文件(如 mp4)。

五、项目的应用场景 & 优势

这个库适合在以下场景使用:

  • 批量 / 自动化视频生成
    比如你有大量相似结构的视频(模板 + 内容替换),可以用脚本批量做。
  • 程序化 / 脚本化的视频拼接
    比如在后台服务里根据数据 / 模板生成视频,而不是手工在剪映里一个个做。
  • 混剪 / 合成视频流水线
    你可以把它作为整个视频处理 pipeline 的一环(前期是素材选择、结构脚本控制,后期交给剪映导出)
  • 对剪映工程文件的进一步处理 / 定制化
    如果你有对剪映草稿内部结构 /格式理解的需求,可以通过这个库来读写、修改内部元素(片段、轨道、特效等)

相比手动操作的优点是:

  • 重复性工作自动化,减少人工误差
  • 保持结构一致性、规范化
  • 与其他系统 /脚本 /数据库集成容易

不过也要注意上面说的版本 /平台兼容性限制。

Github:https://github.com/GuanYixuan/pyJianYingDraft

油管:https://youtu.be/jh1EzcIuvV0