Releases: Hommy-master/capcut-mate
Releases · Hommy-master/capcut-mate
Release v8.0.8
更新资源
Release v8.0.7
📦 改动说明
🎯 本次更新重点
- ✅ 修复同一草稿内相同素材被重复下载的问题
- ✅ 优化 draft_info.json 生成方式,避免重复构建
- ✅ 保留兼容性:在特殊情况下自动回退原有逻辑
🔧 具体改动
- ♻️ 将 URL 素材缓存从“单次 JSON 处理”提升为“整次草稿下载批次”共享
- 📉 当多个文件引用同一远程素材 URL 时,仅下载一次并复用本地路径
- 📄 对 draft_info.json 增加快捷路径:若同目录存在 draft_content.json,直接复制生成
- 🛡️ 若 draft_content.json 不存在,draft_info.json 自动回退到原下载与构建流程
📈 预期收益
- ⚡ 草稿下载耗时下降(减少重复网络请求)
- 🌐 降低弱网环境下失败概率与等待时间
- 💾 减少不必要的磁盘写入与网络带宽消耗
- 🧩 下载日志更干净,行为更符合“同源内容复用”预期
🔍 已确认结论(下载稳定性)
- 当前实现的“重试次数”为 5 次(总尝试最多 6 次)
- 本次版本已解决“重复下载”主因,显著降低弱网下的体感卡顿概率
🙌 兼容性说明
- 不改变草稿目录结构与输出结果格式
- 不影响现有调用方式与历史草稿导入流程
Release v8.0.6
📝 改动说明
🎯 问题背景
- 桌面端 UI 已新增“当前版本号”展示能力,但始终显示 v0.0.100。
- 实际期望是显示应用真实版本(随发版更新)。
🔍 根因分析
- 前端页面读取的是 desktop-client/web/package.json 的 version。
- 该值在日常开发中是固定默认值,未与 Electron 应用真实版本强绑定。
- 因此导致 UI 长期显示固定版本号,而非实际发版版本。
✅ 解决方案
- 新增主进程 IPC 接口:get-app-version。
- 在预加载脚本中暴露 getAppVersion 给渲染进程。
- 在前端 Electron 服务层补充 getAppVersion 调用封装。
- 在 App 启动后主动请求真实版本,并更新页脚显示。
🧩 具体改动
- desktop-client/nodeapi/ipcHandlers.js
- 新增版本查询 IPC,返回 app.getVersion()。
- desktop-client/preload.js
- 新增 getAppVersion 安全桥接方法。
- desktop-client/web/src/services/electronService.js
- 增加 getAppVersion,兼容 Electron/浏览器双环境。
- desktop-client/web/src/App.jsx
- 增加版本状态与初始化加载逻辑。
- 页脚版本号改为展示动态获取结果。
🌟 改动收益
- UI 版本号与实际应用版本保持一致,避免误导用户。
- 版本展示链路更清晰,后续维护与扩展更稳定。
- 在非 Electron 环境下具备回退逻辑,提升兼容性与健壮性。
🧪 验证结果
- 相关改动文件已检查,无新增 linter 报错。
Release v8.0.5
更新图标。
Release v8.0.3
✨ 新增功能
- 🎨 iframe 子页面支持通过 postMessage 动态注入主题配置,整应用实时换肤
- 📏 iframe 高度支持通过子页面传递变量自适应控制
- 🏷️ 底部新增版本号显示,方便用户识别当前客户端版本
🔧 功能优化
- 🎯 主题变量更新策略调整为直接覆盖,消除切换时的样式闪烁
- 🧹 简化 ExternalWebpage 组件初始化流程,外部功能页面切换至正式域名
- ✍️ 修复文本输入框换行被意外清除的问题,支持多行草稿地址粘贴
🛡️ 安全与拦截
- 🔗 iframe 内所有 http/https 外部链接强制使用系统默认浏览器打开
- 🔒 Electron 主进程多层拦截兜底,非外部协议窗口正常保留
Release v8.0.2
✨ 新增功能
- 🎨 子页面现在可以主动向父应用推送主题配置,整个 Electron 窗口的配色将随 iframe 内容一键焕新,无需重启应用即可体验不同视觉风格
- 📏 iframe 高度彻底告别写死数值,子页面通过消息通道实时上报内容高度,父应用自动撑开容器,再也不用面对滚动条裁剪或大面积留白的尴尬
- 🌈 主题配置全面升级,同时支持 primary 与 secondary 双色系,每种颜色都提供 hex 值与 rgb 值两种格式,无论是纯色填充还是透明渐变都能轻松拿捏
- 🌐 外部功能页面正式接入生产环境域名,开发调试与正式使用无缝衔接
🔧 功能优化
- 📝 核心样式文件全面迁移至 Less 预处理器,嵌套语法让选择器层级一目了然,为后续抽取公共变量和复用 Mixin 铺平道路
- 🎯 主题变量更新机制改为智能覆盖模式,只刷新变更的配色项,保留其余样式状态,彻底消除主题切换时的画面闪烁与短暂空白
- 🧹 精简 ExternalWebpage 组件启动流程,移除冗余的网络可达性预检,组件初次渲染更加轻快,页面打开响应更及时
🐛 修复内容
- 🔄 修复动态换肤时旧主题变量残留导致的色块错乱问题,现在每一次换肤都是干净利落的完整替换
📦 依赖变更
- ➕ 新增 less 开发依赖,Vite 原生解析无需额外配置
💡 使用提示
- 子页面只需在合适的时机发送 config 类型消息,payload 中携带 themeConfig 配色对象与 height 高度数值,父应用便会自动完成全局样式注入与 iframe 尺寸适配。themeConfig 的键名请直接采用 CSS 变量规范格式,如 --primary-color。
Release v8.0.1
✨ 版本概览
- 本次版本围绕「发布规范化」与「URL 素材可用性」完成端到端升级:
- 后端支持 URL 直写草稿,下载侧自动本地化素材路径,桌面端与服务端下载体验保持一致。
🎬 媒体接口重构(add_videos / add_images / add_audios)
- 移除下载依赖,素材地址直接使用用户传入 URL。
- 草稿中 path 字段改为写入原始 URL。
- 保留原有轨道与业务语义,降低行为变更风险。
- 清理无效预处理与不必要线程切换,流程更轻量。
🧠 底层素材能力增强(pyJianYingDraft)
- VideoMaterial / AudioMaterial 支持远程 URL。
- URL 场景下跳过本地文件探测,规避 FileNotFoundError。
- 支持通过入参显式传入时长/宽高等元数据。
- 默认素材命名统一为 UUID,行为更稳定。
✅ 参数校验与接口一致性
- URL 校验统一上移到 Schema 层(仅允许 HTTP/HTTPS)。
- easy_create_material 同步对齐 URL 校验与调用流程。
- 移除服务层重复校验逻辑,边界更清晰。
💻 desktop-client 下载能力升级
- 下载草稿时新增 URL 素材本地化处理。
- 当 path 为 URL:自动下载到本地 assets 并回写本地路径。
- 支持音频/视频/图片目录分流与文件名安全处理。
- 增加 URL 去重缓存,避免重复下载相同素材。
📥 服务端草稿下载器升级(draft_downloader)
- 下载 JSON 后同步扫描 materials 的 URL path。
- URL 素材自动下载到本地草稿目录并回写为本地路径。
- 与 desktop-client 形成一致的“URL → 本地路径”闭环。
🔁 重试机制增强
- 服务端草稿下载重试从 3 次提升到 5 次。
- desktop-client 草稿下载重试从 3 次提升到 5 次。
- 统一策略为:首次失败后重试 5 次,总尝试 6 次。
📌 版本价值
- 发布产物更规范,Pro 镜像可直接用于稳定部署。
- URL 素材链路真正打通,跨端下载与打开草稿更可靠。
- 弱网/抖动场景容错能力提升,下载成功率更高。
Release v6.0.1
🚀 版本亮点
- 聚焦 Pro 分支发布规范化,确保 Docker 镜像标签符合预期。
- 服务端全面支持“素材 URL 直写草稿”,不再依赖下载落地。
- 桌面端新增 URL 素材本地化处理,保障剪映本地可直接打开草稿。
🔧 服务端媒体链路重构(add_videos / add_images / add_audios)
- 移除媒体下载流程,直接使用用户传入 URL。
- 草稿 draft_content.json 的素材 path 字段改为写入原始 URL。
- 去除预下载相关预处理逻辑,减少无效线程切换。
- 保持原有轨道与业务处理语义,降低迁移风险。
🧠 底层素材能力增强(pyJianYingDraft)
- VideoMaterial / AudioMaterial 支持远程 URL 路径。
- URL 场景下跳过本地文件探测,规避 FileNotFoundError。
- 支持通过入参显式传递时长/宽高等元数据。
- 默认素材命名策略统一为 UUID,更稳定可控。
✅ 参数校验与接口一致性提升
- URL 合法性校验统一上移至 Schema 层(HTTP/HTTPS)。
- easy_create_material 同步对齐 URL 校验策略与流程。
- 移除服务层重复校验,入口约束更清晰。
💻 desktop-client 关键升级
- 下载草稿时新增 URL 素材本地化流程。
- 当 path 为 URL:自动下载素材到本地 assets 目录并回写本地路径。
- 支持音频/视频/图片分类落盘与文件名安全处理。
- 内置 URL 去重缓存,避免重复下载同一素材。
🧪 质量与稳定性
- 已补充并适配 URL 直写相关测试与流程验证。
- 并发锁与主要接口链路按新逻辑完成回归。
- 重点保障“线上可写 URL、桌面端可用本地草稿”的闭环体验。
📌 最终价值
- 服务端更轻量:减少下载依赖与 IO 负担。
- 客户端更可靠:草稿落地后可直接被本地剪映识别。
- 发布更规范:Pro 镜像标签更符合生产使用习惯。
Release v6.0.0
🎯 本次发布概览
本版本聚焦两大方向:
- 优化 Pro 分支 CI/CD 镜像发布策略;
- 重构音视频图片素材链路,全面支持“URL 直写草稿,不落地下载”。
🔥 CI/CD(Pro)改进
- 将 Pro 流水线镜像仓库固定为 gogoshine/capcut-mate-pro。
- 调整镜像标签策略,确保存在 :latest。
- 移除分支标签生成,避免产出不需要的 :pro 标签。
- 保留必要的 tag/sha 标签能力,兼顾可追溯性与发布稳定性。
🧩 媒体处理核心重构(add_videos / add_images / add_audios)
- 移除文件下载流程,素材地址直接使用用户传入的 HTTP/HTTPS URL。
- 草稿 draft_content.json 中素材 path 字段改为写入原始 URL。
- 保留原有业务语义与轨道处理逻辑,最小化行为变化范围。
- 去除无效预处理与不必要线程切换,简化链路、降低复杂度。
🛠️ 底层能力增强(pyJianYingDraft)
- VideoMaterial / AudioMaterial 增强远程 URL 处理能力。
- URL 场景下跳过本地文件探测,避免 FileNotFoundError。
- 支持通过入参显式传入时长/分辨率等元数据。
- 默认素材名称统一为 UUID,减少路径推断带来的不确定性。
✅ 参数校验与接口一致性
- URL 合法性校验上移至 Pydantic Schema 层(仅允许 HTTP/HTTPS)。
- easy_create_material 同步对齐 URL 校验与素材创建逻辑。
- 移除服务层重复校验与历史兼容分支,入口约束更清晰。
🧪 测试与质量保障
- 新增/更新针对 URL 直写、Schema 校验、远程素材构造的单元测试。
- 并发与锁相关测试按重构后的调用路径完成适配。
- 关键回归目标:功能可用、路径正确、异常可控。
📌 发布价值
- 更高的接口吞吐与稳定性(无下载依赖)。
- 更清晰的输入边界(Schema 强校验)。
- 更一致的 Pro 镜像发布产物(以 latest 为主)。
Release v8.0.0
主线分支打包,稳定包发布