Releases: Hommy-master/capcut-mate
Releases · Hommy-master/capcut-mate
Release list
[v8.0.71] ✨ 字幕关键词增强:独立字体、阴影与完整字体清单
改动说明:
🎉 本次更新聚焦 add_captions 关键词能力,让字幕高亮更可控、更好用。
🔤 关键词独立字体
- 新增 keyword_font,可单独指定关键词字体
- 取值规则与接口级 font 一致,支持展示名、枚举名与别名
- 未填写时自动回退到整段字幕字体;解析失败时安全降级并记录日志
- caption_infos 同步支持写入该字段
🌑 关键词局部阴影
- 新增 keyword_has_shadow / keyword_shadow_info
- 阴影仅作用于关键词范围,不另建字幕行
- 未传详细参数时使用默认阴影;有效花字下仍会禁用关键词阴影
📚 字体文档补齐
- 在 add_captions 中英文文档列出全部可用字体(798 种)
- 所列名称均可直接作为 font / keyword_font 的值
- 补充别名说明,并修正示例中的无效字体名
🛠️ 实现与兼容
- 关键词样式仍在同一字幕内完成,颜色、字号、描边、字体、阴影可组合使用
- 有关键词阴影时采用互不重叠样式分区,避免整段误加阴影
- 导出时为未单独指定字体的分区补写整段字体,行为更稳定
📖 文档已同步更新中英文说明与完整参数示例,便于直接对接使用。
[v6.0.23] 合入main分支字体默认值相关改动
合入main分支字体默认值相关改动
[v6.0.22] 合入main分支的改动
[v6.0.21] 合并main分支的改动
Release v8.0.70
改动说明
🔧 草稿下载更可靠
- 修复服务端草稿元信息与本地目录不一致,导致导出找不到草稿的问题
- 下载完成后自动校正本地草稿元数据,减少误报与导出失败
🧭 下载失败原因可区分
- 明确区分「资源不存在 / URL 不可用」与「网络抖动、重试耗尽」
- 云渲染任务返回更清晰的失败说明,便于排查与重试决策
🖼️ 转场时长处理统一
- 修复图片 / 视频接口中转场时长为空时触发的内部错误
- 未指定时长时自动使用转场效果默认时长,行为更稳定
📦 客户端 CI 简化
- 推送版本标签后直接打包桌面客户端,不再依赖变更检测才构建
- 发布流程更简单,减少漏打安装包的情况
✅ 稳定性与可维护性
- 补充相关单元测试,覆盖下载失败分类与关键路径
- 优化关键报错文案,问题定位更快
💡 建议升级后优先验证:草稿下载、云渲染失败提示、含转场的图片/视频添加,以及打标签后的客户端自动打包。
[v6.0.20] 重新打包
[v6.0.19] 合入main分支改动。
Release v8.0.69
改动说明
概述
- 本次聚焦 src/utils/draft_downloader.py,提升草稿下载稳定性与效率,重点修复远程素材(如阿里云 OSS 音频)因 URL 污染导致的假 404,并与 desktop-client 行为对齐。
网络请求
- 新增统一 HTTP 请求头,补充浏览器 User-Agent,与 download.py、desktop-client 保持一致
- 抽取 _http_get(),草稿文件列表、单文件、远程素材、execute_download 等下载均走同一入口
- 修正可重试 HTTP 状态码:404 不再重试(对象不存在时重试无意义,避免无效等待)
草稿 JSON 下载优化
- draft_content.json 与 draft_info.json 内容相同,不再重复下载 draft_info.json
- 其余文件全部成功后,自动将 draft_content.json 复制为 draft_info.json
- 路径重写与 URL 素材本地化仅在 draft_content.json 上执行一次,避免重复拉取远程素材
修复 OSS 远程素材 404
- 根因:JSON 中 materials.*.path 可能含尾部空格、换行、零宽字符等不可见字符,OSS 按错误 object key 返回 404,浏览器因自动裁剪仍可访问
- 新增 _normalize_http_url(),下载前自动清理首尾空白及 BOM、零宽字符
- 若 URL 被修正,会输出 WARNING 日志,便于排查数据来源问题
代码结构
- 新增路径解析、draft_info 判断、content→info 同步等辅助函数,逻辑更清晰
- 补充单测:请求头、JSON 跳过与复制、URL 规范化、404 不重试等场景
升级建议
- 若此前因远程音频 404 导致草稿下载失败,建议升级后重试
- 若仍失败,请检查日志是否出现 Normalized remote material URL,并核对 JSON 中 path 字段来源
Release v8.0.68
改动说明
✨ 新功能
- 📁 新增 STORAGE_UPLOAD_PREFIX 配置项,支持为 COS / OSS 上传设置统一的目录前缀(根目录)
- 🔧 可通过环境变量 STORAGE_UPLOAD_PREFIX 灵活配置,无需改代码即可区分环境或业务目录
🗂️ 路径规则调整
- 📅 上传目录由「按日期 + 小时」改为「仅按日期」:yyyy-MM-dd/文件名
- 🧹 移除小时层级,同一天上传的文件集中在同一日期目录下,结构更简洁
- 🔗 配置前缀后,完整路径为:[前缀/]yyyy-MM-dd/文件名
🛠️ 代码优化
- ♻️ 抽取 build_storage_object_key() 公共逻辑,COS 与 OSS 共用同一套 key 生成规则
- 📝 完善 config.py 注释,补充多种可用配置示例及路径效果说明
- ✂️ 自动去除前缀首尾多余斜杠,避免重复 / 导致路径异常
🧪 测试
- ✅ 新增 tests/test_storage_key.py,覆盖无前缀、有前缀、斜杠规范化等场景
📌 配置示例
- 未设置前缀:文件上传至 2026-06-15/文件名
- 设置为 capcut-mate:文件上传至 capcut-mate/2026-06-15/文件名
- 设置为 prod/capcut-mate:文件上传至 prod/capcut-mate/2026-06-15/文件名
⚠️ 升级提示
- 🔄 本次变更仅影响新上传文件的存储路径,历史已上传文件路径不变
- 🆕 若需将文件归档到指定根目录,请在上传前配置 STORAGE_UPLOAD_PREFIX 环境变量
Release v8.0.67
改动说明
🐛 问题背景
- 导出完成后回到首页时,偶发 Windows UI Automation COM 错误(-2147220991 /「事件无法调用任何订户」),导致视频导出任务失败。该问题多出现在窗口切换、UI 元素失效的瞬时阶段,并非草稿内容异常。
✨ 核心修复
剪映自动化控制器(jianying_controller)
- 🛡️ 窗口匹配回调在读取控件 Name、ClassName 时捕获 COM 瞬时错误,跳过失效元素,避免中断整次窗口查找
- 🔁 新增带 COM 重试的 Exists 检测逻辑,与现有 _safe_click、_safe_exists 策略保持一致
- 🪟 get_window 全流程加固:查找主窗口、导出子窗口、清除置顶时均使用 COM 安全重试
视频任务管理(video_task_manager)
- 🔂 将 COM/UIA 瞬时错误纳入可重试错误类型
- 📦 导出阶段最多额外重试 2 次(共 3 次尝试),复用已下载草稿,无需重新下载
🧪 测试
- ✅ 新增 COM 错误识别与窗口匹配容错相关单元测试
- ✅ 更新导出重试逻辑测试,覆盖 COM 错误重试成功与耗尽场景
📌 使用说明
- 偶发导出失败时,日志中可能出现 UIA COM error on Exists, retrying 等重试提示,属正常自愈行为
- 若连续 3 次仍失败,请检查:剪映是否正常运行、是否有人为操作干扰、是否在 RDP 断开或会话锁定环境下运行
⚠️ 已知限制
以下情况仍可能导致导出失败,需从运行环境排查:
- 剪映未启动或进程异常退出
- 远程桌面断开、桌面会话被锁定
- 剪映版本升级导致 UI 结构变化
- 导出过程中人工操作剪映界面