Files

34 KiB
Raw Permalink Blame History

更新日志

本文档记录了AutoClip项目的所有重要变更。

格式基于 Keep a Changelog, 项目遵循 语义化版本。

[未发布]

(本周尚无改动)

1.5.0 - 2026-10-01

  • CLI / MCP wheel 补齐人物检测 ONNX 和 MIT 许可证,修复竖版取景回退;CI 从安装包重新检测真实素材,并校验中文 ASS 字体。macOS 修正随包字体名称匹配,避免中文字幕显示方框。

新增

  • 一键出片:贴一个视频链接、选好要发的平台(抖音、小红书、TikTok、Reels、YouTube Shorts、B 站、YouTube),自动挑出值得发的片段,按每个平台的画幅、时长和包装直接生成可发布成片;可随时追加平台版本,失败的单条可重试。
  • 两套包装模板:抖音 / 小红书用「访谈式」(上方两行标题、4:3 说话人窗口、中英双语字幕、左下名牌、编辑点评标签);TikTok / Reels / Shorts 用「播客式」(全屏跟随说话人、逐词高亮字幕、开头一句 hook、名牌)。外语素材自动翻成目标平台的语言;原片自带字幕时保留完整画面,字幕放在画面下方。
  • 按内容情绪变换风格:模型判断每段内容的情绪(冷静、严肃、强观点、真诚、轻松),据此在 7 套配色和多种字幕动效里挑选,不同片段风格各异,同一片段在各平台保持一致。
  • 每个平台先生成最好的 10 条:长视频会挑出 20–40 个片段,先按目标平台的时长要求筛选,再自动生成评分最高的 10 条,其余列为「备选片段」,点「生成这条」再制作,省时间也省模型费用。
  • 每条成片自带发布包:按目标平台写好标题、简介和话题(抖音钩子式、小红书笔记式、B 站信息完整、TikTok / Reels / Shorts 英文文案),按平台字数与话题数限制;封面在成片完成后自动设计——说话人画面、成片同款标题与配色、嘉宾名牌,按平台比例(竖屏 9:16、小红书 3:4、B 站 16:10、YouTube 16:9)。成片卡片上可直接改文案、复制、导出「发布包」(视频 + 封面 + 文案),也可以一键用 AI 重新设计封面;去发布时自动带上这套文案与封面。
  • 新片尾动画:1.8 秒的 AutoClip 标志动画与提示音,竖屏、横屏各一版,其他比例自动居中适配。
  • 竖屏成片按说话人自动取景,主持人与嘉宾切换时画面跟着说话的人走。
  • 新增赞助合作伙伴 88API:八语 README、首页与设置页推荐入口、独立 API Key、模型发现、兼容封面与 Whisper 转写;CLI / MCP 使用 api88。
  • 模型设置新增赞助合作伙伴「Infistar 无限星河」:接口地址已预设,填好 Key 后自动列出账号可用的模型;设置页提供专属注册链接(可领 $5 体验额度)和接入说明。CLI / MCP 支持 --provider infistar 与 INFISTAR_API_KEY。
  • 设置 → AI 模型重新整理为「AI 服务 / 字幕转写 / 封面 / 高级」四段:选一家服务、填好 Key,分析模型自动选好;画面识别首次配置默认开启,注明适合游戏画面、口播较少的内容;封面默认免费自动设计,自己选好生图服务和模型后才用 AI 生成。从 1.4 升级的用户:1.4 首次配置时自动打开的 AI 封面会改回自动设计(已选的模型保留,在设置里选「AI 生成」即可恢复),不会在后台自动按张计费。供应商分组中的赞助伙伴改为「推荐」。
  • 首次打开应用会弹出「连接 AI 服务」引导,未连接时导入会提示先去连接;不再需要自己摸索设置页。
  • 首页空状态提供「用示例项目看看效果」:一键生成一个带来源链接的已完成示例项目(Sam Altman 访谈三段),可以直接进编辑器、渲染、生成封面、导出,体验完整流程。
  • Studio 编辑器:字幕改为整条成片统一的四种样式(带预览);片头文字降为可选并用视觉缩略图选择;播放器始终跟随滚动可见;预览播放条改为成片自身的时间轴。
  • 竖屏「满屏」构图新增按镜头自动取景:先识别镜头切换,再对准正在说话的人;引用卡、PPT 等没有人物的镜头自动改为完整画面 + 模糊背景,不再被裁掉两侧。首次使用需下载约 45 MB 的人物识别组件;每个镜头都可以单独改为「对准人物 / 完整画面」并微调位置。

改进

  • 客户端补齐发布包保存、AI 封面结果、单条重试、竖版版式与实际片尾的匿名统计,便于发现生成失败与降级;关闭统计后停止观察。
  • CLI / MCP 同步接入一键出片:按平台生成视频、封面、发布文案与 ZIP 发布包,支持查询进度,版本统一为 1.5.0。
  • 竖版成片可选「按平台默认 / 访谈式(人物窗口)/ 播客式(满屏)」,字幕和文案语言仍按平台;追加平台和备选片段继承选择。
  • 设置页增加「自动添加品牌片尾」开关,默认开启;修改自动成片后重新导出也会保留片尾。
  • 出片速度大幅提升:一条 2 小时访谈从链接到成片,由约 65 分钟缩短到 7–8 分钟(视频有作者字幕时)或约 30 分钟(需要本地语音识别时)。片段挑选改为一次通读全文,原来几十次模型调用、半小时以上,现在一分钟以内;各步骤的模型调用并行执行;视频有作者上传的字幕时直接使用,不再本地语音识别。
  • 云端语音识别更快:选用云端转写时,音频分段并行上传识别,一条近 3 小时的中文访谈约 4 分钟转写完(本地 Whisper 约 23 分钟);阿里云百炼连接支持填写专属接口地址。
  • 封面更清晰、不认错人:从成片里挑嘉宾最清晰的画面(有视觉模型时由它确认是哪位嘉宾),名牌只标在确认过的嘉宾身上,不再把主持人标成嘉宾;英文长标题自动换行放大。AI 封面不让模型自己写人名,名牌由我们叠加;生成后核对标题文字,写错会重试,仍不对就保留自动设计的封面;按平台比例生成,不再裁掉标题或留出上下黑边。成片卡片上直接显示完整封面。
  • 模型费用更低:一条 2–3 小时访谈的模型费用由约 ¥0.6 降到 ¥0.1–0.2(qwen-plus 估算),模型调用由近 200 次降到 30 次左右;同语言包装不再让模型复述整段字幕。
  • 更安静:成片用电脑自带的硬件编码器(macOS VideoToolbox、Windows NVENC / QSV / AMF),CPU 占用约降到原来的四分之一,风扇不再狂转;硬件编码不可用时自动改用软件编码。
  • 切点更自然:片段从问题或观点的第一句开始,到回答讲完、说话人有明显停顿时才结束;按原片音频的真实停顿下刀,不再带进半句下一段话或主持人的下一个问题。
  • 导入确认页去掉重复的分析方式提问,控件和文案与设置页统一;发布页和编辑器的「烧录」「标题卡」等术语换成直白说法,编辑器和导出对话框补上封面入口,发布页默认自动生成封面。

修复

  • YouTube 长视频先筛选至少 180 秒的完整片段,再选前十,避免被高分短片段挤成备选后一直等待;没有可执行任务时明确结束,CLI / MCP 不再停在 rendering。
  • 横版长字幕不再整段铺满画面;各画幅按字号分屏,单屏最多两行,截取长字幕中段不会重新播放前面的整段文字。
  • 成片卡片只保留「复制发布文案」,复制内容不附产品署名;AI 重新设计封面使用当前平台的设计流程,重复点击不会重复生成。
  • 发布包和桌面下载改为逐段写入文件,长视频不再在内存里整份复制;下载失败会移除残缺文件。
  • 外语素材原片烧有英文字幕时,抖音版也会配中文字幕。
  • 原片已有硬字幕时,按目标平台判断是否加字幕:中文硬字幕投抖音不再重复加中文字幕,投 TikTok 加英文;外语访谈配了英文硬字幕的,投 TikTok 不再重复。细小、无描边的硬字幕(常见于 B 站访谈)也能识别。
  • YouTube 偶尔只给 360p 画质时会自动换方式重新下载到 720p 以上,不再出模糊成片。
  • TikTok / Reels / Shorts / YouTube 版本只用英文:标题、字幕、发布文案和封面都不再混入中文;原片没有字幕时一定补上英文字幕;原片烧有中文字幕时,英文版会模糊掉那一条字幕带,再配上英文字幕,并照常跟随说话人取景。台标、PPT 文字不再被误认成原片字幕。
  • 一键出片的项目里不再多出一排打不开的原始切片卡片(这些切片没有单独的视频文件,预览、下载都会失败);原始切片仍在「来源片段」里,可以拿来做新成片。
  • 同语言字幕与声音同步;电影感字幕改为一次 2–5 个词,不再一个词一个词跳。
  • 标题不再出现 Markdown 符号或 & 之类的转义字符;中文平台不会出现日文标题;包装偶发不合规时会自动重试一次,不再整段退回原字幕。
  • 时间线重试只使用本次有效结果,避免失败后误用上次候选;原始响应缓存现在会正常解析,无效缓存不会自动触发模型请求。
  • 智能导入后台任务提交失败后可明确重试,已有方案、草稿和成片保留;修改方案失败时同步恢复偏好。
  • 时间线兼容常见时间戳格式;相邻短片段在丢弃前尝试合并,保留既有时长限制。
  • 保留的旧导入组件支持更多 YouTube 分享链接格式;当前 Studio 入口增加独立链接回归覆盖。
  • Windows 覆盖安装前会结束旧版本残留的后端进程,不再报「无法打开要写入的文件 _asyncio.pyd」;应用内更新先停后端再安装。
  • 链接导入把内置 ffmpeg 交给下载器,Windows 上合并音视频不再失败;下载阶段显示真实百分比,不再长时间停在同一个进度。
  • 测试使用临时数据库,不再清空开发者本机的 data/autoclip.db。

安全

  • 本地后端只接受 AutoClip 自己界面的跨域请求,其他网页不能再读取设置里的 API Key 或发起导入、发布;桌面端拒绝非本机 Host,防 DNS 重绑定。
  • 调试路由默认不再挂载(AUTOCLIP_ENABLE_DEBUG_ROUTES=1 开启);python -m backend.main 默认只监听 127.0.0.1。
  • Docker 从局域网 IP 或自定义域名打开前端时,需要在 AUTOCLIP_ALLOWED_ORIGINS 里加上前端地址(逗号分隔)。

1.4.0 - 2026-09-27

新增

  • 游戏视觉分析:自行配置多模态模型,在确认后识别录屏中的独立事件,生成可编辑高光与推广草稿。
  • 双分析路线:保留低成本字幕分析;旧配置默认字幕模式。模型配置与调用授权分离,付费视觉初筛需显式启用。
  • 统一导入、确认、编辑与导出:快速推荐制作类型,支持手动校正;未确认导入可恢复,确认后才正式理解和剪辑。
  • 字幕高光与推广草稿接入共用编辑器;六款文字模板、语言配置、候选边界调整及导出历史。

改进与修复

  • 有界视觉扫描与有效候选保留,按独立事件组织高光,最多六段,不按时间相邻强行合成全片。
  • 推广草稿的自动画幅匹配为竖屏,用户手动选择优先;保持原音轨并支持本机渲染与原生保存。
  • 旧项目重分析显式确认,文字任务不隐式回退到视觉接口;导出调度失败可恢复。
  • 保留便携 Python 运行时资源签名,统一八语界面与匿名业务统计。

验收范围与已知限制

  • macOS Apple Silicon 已有候选包安装、非空数据升级/回退、原生编辑/导出/保存和真实跑酷样本验证。单一样本不代表所有游戏质量;输出仍需人工检查边界、裁切和文案,不承诺广告投放效果。
  • Windows 提供构建产物,实际安装、导入与保存尚待实机验收。
  • 本次不含 CTA 动效、生成式品牌尾卡、卡拉 OK / 逐词字幕;后续独立迭代。
  • 使用云端视觉模型会发送抽样画面及必要文字;字幕路线发送相关字幕/文案,费用取决于所选服务商。剪辑与渲染在本机完成。
  • macOS 为 ad-hoc 签名、未公证;Windows 安装包未做系统代码签名。更新包签名与系统代码签名是不同机制。

1.3.5 - 2026-09-26

改进

  • 导入失败的监控分类:缺字幕、缺少 API Key,以及未预期的导入故障,会以不同异常类型分开上报。Sentry 里对应 fingerprint 为 import-processing / missing-subtitle、import-processing / missing-key;未预期故障仍是 ImportProcessingError,沿用默认栈归组。日志里带 kind=missing-subtitle、kind=missing-key 或 kind=unexpected。这只改善监控分类,不改变导入是否成功,也不改变字幕质量。

修复

  • YouTube / 链接导入时,项目卡不再停在约 5%:下载进度会写入数据库,进度条会跟上列表里的真实百分比。这不表示所有 YouTube 下载或 Whisper 转写都会成功(Related #163 / #183)
  • 切片预览改为原生 video。播放地址没有 .mp4 后缀时,ReactPlayer 不会挂上播放器,弹层只剩一块黑底。新切片转成 H.264 / AAC 并前移索引,应用内能解出画面。已经生成的旧切片不会重编码;解不开时预览会说明去下载,用系统播放器打开(Related #175)
  • 走 DeepSeek 官方接口做切片分析时关闭思考模式,并限制单次输出长度。思考模式默认开着,推理内容按输出 token 计费,长字幕会比可见回答贵很多。长视频仍按约 30 分钟一块、分几步调用;刷新页面不会重新计费,重新开始处理才会(Related #175)
  • 时间线为空时不再误导去改模型设置(Related #182)
  • 本地导入调用 Whisper 时,不再因为多传了时间戳、标点或超时参数,在转写开始前就失败。未安装时仍指到「设置 → 转写」
  • Whisper 只返回空白片段,或上次留下的字幕文件没有正文时,不再把空文件当成转写成功
  • 本地导入没有可用字幕时,失败说明会指到「设置 → 转写」,也可以在重新导入时附上 .srt。已经失败、只记下「字幕文件不存在」的项目,打开后同样能看到这条去向(#186)
  • 桌面端连续查看项目、下载或生成合集时,不再因为数据库连接占满而打不开列表和详情(#175)
  • 切片标题含中文等非英文字符时,预览和下载不再因为响应头无法编码而失败

1.3.4 - 2026-09-24

修复

  • macOS 桌面端切片生成后可以预览,下载会保存到「下载」文件夹(#166 / #168)
  • 片源处理进度显示更准:不再因读错字段停在约 5%;真下载失败仍需看日志(Related #163 / #169)
  • 导入任务失败时,Celery 结果可正确记为 FAILURE(#20 / #170)
  • 无字幕或未安装 Whisper 时,失败提示指到「设置 → 转写」(#165 族 / #171)
  • 没有可用模型或连接测试失败时,提示需自备 API Key,并指到「设置 → 模型」(Related #161/#162 / #174)

1.3.3 - 2026-09-23

修复

  • 非 Mac 安装 Whisper 时,不再误报「仅支持 Apple Silicon」并拦住安装(#145)
  • 处理完成后进度弹窗不再空转;项目目录找不到时,状态查询不再整页失败(#152)
  • 分类列表还没加载完时,导入入口不再崩溃(#153)
  • 本地 Whisper 转写失败时给出可读提示,应用继续运行(#154)
  • 升级后若项目里还有旧的状态或类型值,启动时自动改写,项目列表能打开(#155)
  • 桌面端下载 Whisper 模型时,不再因进度条写控制台而失败(#157)

1.3.2 - 2026-09-22

新增

  • 发布到海外平台(Upload-Post):切片可经 Upload-Post 一次发到 TikTok / Instagram / YouTube Shorts / Facebook / LinkedIn / X / Threads / Pinterest / Bluesky 等, 与 B 站投稿并列;先按预设渲成片(竖屏平台默认 shorts),再异步提交并轮询各平台结果。视频处理仍全部在本地。 入口:autoclip publish、MCP publish_clip / get_publish_status / list_publish_profiles、API /api/v1/publish/upload-post/*; 配置用 UPLOAD_POST_API_KEY / UPLOAD_POST_USER、autoclip publish --api-key … --user … --save,或设置页「发布」。 切片的「发布导出」里可以「发到海外平台」:勾选已连接的平台,默认先私密试发(docs/PUBLISH_UPLOAD_POST.md)。 发布客户端按当前 Upload-Post 文档和 OpenAPI 重写:过期账号不拿来发,Reddit 暂不发送,超长 YouTube 标题单独截短,提交后每 10 秒查一次结果。无效 key 打线上接口会得到 401。进程中断后未提交的任务会标成失败,而不是一直停在排队。 应用里的发布收成一条:切片上打开发布,现在发或定时,成片画幅跟着账号走。项目里看记录并取消还没发出的排期。记录可以换成月历;「排这一周」把还没发的切片按分数填进周一、三、五的 09:00,确认后才提交。 B 站和海外账号在同一处配置、同一页勾选。设置里粘贴 Cookie 并校验,发布页出现 B 站;只发 B 站时渲成横屏,和竖屏账号一起发时各自渲。定时要晚于现在两小时,还没到点的可以取消。抖音、小红书、快手仍然没有投稿接口。
  • 自动封面:设置页「封面」可配 OpenAI 兼容、Seedream(火山方舟)或通义万相。发布页可预览、改文案、重新生成。B 站投稿优先用设计封面;生图失败或未生成时截帧兜底,封面失败不挡投稿。Seedream 参考帧走 generations 的 image 字段,校对用豆包视觉。

改进

  • 设置「发布」把 B 站和海外拆开:B 站 Cookie 输入和保存放在最上面,不再跟在海外密钥后面,避免一进来找不到贴 Cookie 的地方。
  • 设置页模型名单跟得上服务商:下拉换成当前常用型号,去掉已下架的 gpt-4o、gemini-1.5、qwen-turbo 等。通义领先 qwen3.8-max / qwen3.8-flash,Gemini 默认 gemini-3.8-flash(2.5 仅作旧账号兜底)。填写密钥后向服务商拉取最新 /models,与内置名单合并;拉不到时仍显示内置列表,可点刷新。
  • DeepSeek / Seed / Kimi / GLM / Grok 走官方接口:设置页可直接选,不再借硅基流动。DeepSeek 默认 deepseek-flash(V4.1);Seed 走火山方舟,默认 doubao-seed-2-1-lite-260915。硅基流动不再作为独立提供商出现(旧配置仍能读,打开设置页会切到 DeepSeek 官方)。
  • 发布操作教程入口:设置「发布」、切片发布页和周排期空态增加「操作教程」,打开官网 guides/publish/。具体步骤(Upload-Post 密钥、B 站 Application → Cookies 三个字段、仅自己试发)写在官网,改步骤不用发客户端。
  • 应用内更新提示:桌面端发现新版本后在后台下载。顶栏箭头放在语言、主题、设置这一组常驻入口的外面,提示从图标下面展开。点「暂不」只关掉这次提示,图标还在。没有新版本时箭头不出现。已经是最新版时一天查一次;发现过新版本或检查失败时,下次打开会再查。提示里的说明来自该版本的更新日志。
  • 不再用飞书表格收集反馈。 应用内反馈跟随八种界面语言。点发送不看匿名统计开关:故障进入 GitHub Issue,想法和其他进入 Discussions。邮箱不写进公开帖。
  • 应用内反馈自动收件。 每小时把新的 feedback_submitted 写进 GitHub,同一条反馈编号只写一次。
  • 真实私密试发脚本:scripts/verify_live_publish.py 用本机密钥做一次 Upload-Post 私密投稿和 B 站仅自己可见投稿,打小版本前跑。没有密钥时直接说明缺什么,不假装成功。

修复

  • 数据库清理脚本失败时返回退出码 1。之前异常被接住后进程仍以 0 退出,调用方会以为清理已经成功。
  • 发布导出 ffmpeg 失败时把错误文本切成了单个字符([-800]),空输出直接 IndexError;改为切片 [-800:]

1.3.1 - 2026-09-21

改进

  • 八语产品界面与官网:中、英、日、韩、西、葡、俄、法覆盖主要界面、语言选择、表单日期组件和原生托盘;跟随系统或手动选择并保存,切换不重置正在编辑的内容。官网同步八语与可分享语言链接。
  • 八语仓库主页:中文、英文、日文、韩文、西班牙文、葡萄牙文、俄文、法文 README,统一下载入口、真实界面截图、使用说明和可核验的成就徽章;增加文档一致性检查。
  • 联系方式精简:README 移除 QQ、飞书和二维码,仅保留邮箱;同步整理安装、FAQ、Docker 和贡献指南。
  • 匿名使用统计 v2:区分导入、处理、导出、下载的请求与实际结果,增加版本和运行环境标记,避免重复统计;关闭统计后清理待观察任务,不采集 DOM 文本和原始错误内容。
  • 崩溃诊断:接入前端与 Python 错误上报、版本标记及前端 source maps;在发送前过滤请求、日志、变量和错误正文,设置中可关闭。
  • 桌面更新:新增手动检查更新和启动时的每日检查,确认后下载安装;为后续版本提供签名更新包。v1.3.0 用户需先手动安装本版。

修复

  • 网页开发预览从统一版本配置读取版本号,避免继续显示旧版默认值。
  • 手动检查更新遇到网络错误时显示失败,避免误报“已是最新版本”。
  • 崩溃报告开关在发送前重新检查,后端关闭后无需重启即可拦截后续错误事件。

1.3.0 - 2026-09-20

新增

  • autoclip 命令行:autoclip run video.mp4 --provider ollama 一条命令出片,list / show / providers / doctor 子命令,--json 给脚本与 agent;与桌面应用共用数据目录与 SQLite(pip install -e .;docs/CLI_AND_MCP.md)
  • MCP server(autoclip mcp,stdio):clip_video、start_clip_job / get_job_status、get_project、list_projects、list_providers、check_environment,Cursor / Claude 可直接调用;Agent skill skills/autoclip/SKILL.md
  • 本地模型预设 Ollama / LM Studio:设置页提供商下拉直接可选,自动列出服务端模型,无需 API Key;Docker / CLI 可用 LLM_PROVIDER=ollama
  • GET /settings/local-presets、GET /settings/compatible-models?base_url=;POST /settings/test-api 接受 ollama / lmstudio
  • 出片质量工程化:按时长分档(短/中/长)覆盖提示词里写死的 90 秒规则;时间线对齐字幕边界并去重;评分数量不匹配不再整块丢、低于阈值保底 top-K。回归入口 python -m backend.eval
  • 发布导出:切片可渲成抖音/小红书/Shorts 9:16 或 B 站横屏(烧字幕 + 标题卡)。入口:详情页「导出」、autoclip export、MCP export_clip
  • Docker / 本地脚本模式可用设置页:GET/PUT /settings、/test-api、/current-provider、/compatible-models 等配置端点不再要求桌面模式;Web 端设置页可直接保存 LLM 提供商与密钥到数据目录的 settings.json,api 与 worker 自动热重载。首屏如实显示 .env 里的 LLM_PROVIDER / API_MODEL_NAME(#100)
  • 失败要像失败:LLM 未配置 / 字幕缺失或为空 / 大纲提取全部失败或不可解析 / 时间线为空 / 没有片段过评分 / ffmpeg 没产出切片—— 流水线一律进 failed,带阶段(SUBTITLE / ANALYZE / EXPORT)和一句可执行的提示(去哪个设置项、装什么)。不再出现 Completed · 0 切片 或永远 processing。ProjectResponse 新增 error_message(取最近失败任务,CLI 路径回退 project_metadata.last_error),详情页 / 项目卡 / 应用内反馈直接展示(#100 #11 #24)
  • LLM 单个文本块失败仍继续(长视频偶发超时不毁整条),只有全部失败才报错
  • 通义千问国际站(#45):设置页通义千问卡片新增「中国站 / 国际站」开关,alibabacloud.com 开通的 Key 可直接用;Docker 用 DASHSCOPE_BASE_URL。国际站走 OpenAI 兼容模式,按实例隔离,不改全局 SDK 地址
  • 设置页「最低评分阈值」真正生效:以前只改了 API 进程内存,流水线(worker / 本地线程)一直用常量 0.7;现在 step3 按 settings.json 热重载读取,CLI --min-score 仍优先。chunk_size / max_clips 同样进入 settings,供后续步骤接入
  • 发版工具:scripts/bump_version.py(四处版本号统一 + CHANGELOG 滚动,--check 校验一致)、scripts/release_notes.py(Release 正文从 CHANGELOG 生成);RELEASE_CHECKLIST.md 改写为周更流程

修复

  • DashScope 提供商不再把完整 API Key 打进 INFO 日志
  • 本地上传的项目从不自动开始处理:/projects/upload 启动导入任务的代码引用了未定义的 db,NameError 被吞掉,项目一直停在 pending 等用户手点「开始处理」(自 2026-05 593cc62b 起)
  • 桌面模式多线程写 SQLite 互相回滚:文件型 SQLite 之前用 StaticPool(全进程一条连接),导入线程结束时的 ROLLBACK 会抹掉流水线线程刚写入的 Task 行(ObjectDeletedError、任务凭空消失、进度卡住)。改为默认连接池 + WAL,StaticPool 仅保留给 :memory:
  • 桌面模式下 Celery 任务内的 self.update_state() 不再去连 Redis 结果后端(直接 ConnectionRefused 拖死导入任务)
  • 开着浏览器「翻译此页」时切换提供商 / 输入模型名整页崩溃(#100):Chrome / Edge 翻译会把文本节点换成 <font>,React 更新时抛 removeChild NotFoundError。现在在挂载前对 removeChild / insertBefore 做守卫,节点已被外部脚本移动时跳过而不是崩;错误边界页识别到该情况会用中英双语提示关闭翻译
  • 错误边界降级页按 DESIGN.md 重做(去掉紫色渐变与 AntD Result,单色卡片 + Btn 原语),「返回首页」在 HashRouter 下真正回到首页
  • macOS 开着系统代理(Clash 等)时本地 Ollama / LM Studio 请求被送进代理导致 502:对 localhost / 内网地址不再读取代理环境变量
  • 设置页首屏偶发不请求当前模型(apiConfig.notifyListeners 遍历中被 listener 自删)
  • 从本地预设切回云端提供商时模型名不再残留 qwen2.5:7b 之类本地模型名

1.2.1 - 2026-09-06

止血版:让 README 推荐的 docker compose 路径和本地脚本路径真正能跑通一次完整处理(issue #88 及其一长串重复 issue)。

新增

  • OpenAI 兼容接口自定义 base_url:设置页 OpenAI 提供商新增「接口地址」,可接智谱 / DeepSeek / OpenRouter / 本地 Ollama、vLLM、LM Studio 等;自建服务可不填 key(#72 #57,替代 #78)
  • Windows x64 安装包(首个版本,NSIS,按用户安装):scripts/build_windows_x64.sh + desktop-build.yml Windows job;与 macOS 共用 scripts/lib/desktop_build_common.sh(#73)
  • Docker / 脚本模式可用环境变量配置 LLM:LLM_PROVIDER、API_MODEL_NAME、OPENAI_BASE_URL、API_{DASHSCOPE,OPENAI,GEMINI,SILICONFLOW}_API_KEY;compose 透传给 api 与 worker,CI docker-smoke 断言其生效
  • requirements.txt 直接依赖全部锁定版本(与 CI / Docker 实装一致;3.11 与便携 3.13 均可解析)

修复

  • 设置页选择的 LLM 提供商从未被持久化:api_provider / api_base_url 现在真正写入 settings.json 并被流水线读取;/settings/current-provider 不再固定返回通义千问;设置保存后 API 进程与 Celery worker 按文件 mtime 自动重载,不必重启
  • 模型选择框(mode="tags")手动输入后会把数组发给后端导致保存失败,已归一为字符串
  • Docker 镜像无法构建:.dockerignore 误排除 docker-entrypoint.sh / docker-dev-entrypoint.sh(#1 #4 #9 #47 #50 #88)
  • Windows 克隆后容器无法启动:新增 .gitattributes,shell 脚本强制 LF 行尾(#73 #88)
  • Docker 下任何任务都不执行:compose / dev compose 的 Celery worker 未指定 -Q,只监听默认队列;现在消费 celery,processing,video,notification,upload。本地脚本 start_autoclip.sh 同步补齐 celery 与 video 队列(#88)
  • Docker 下项目提交后立刻被标记失败:task_submission_utils 里一段仅用于诊断的 redis.Redis(host='localhost') 位于 try 内并向上抛异常;改为走 REDIS_URL 且失败仅记 warning(#88)
  • YouTube 解析在作者机器以外 500:youtube.py 中硬编码的 /Users/zhoukk/... yt-dlp 路径与 cwd 改为 sys.executable -m yt_dlp + 数据目录;同步清理 fix_project_thumbnails.py 与设置页里的硬编码路径(#88)
  • LLM 评分步骤对 list 输入未做 JSON 序列化(_build_full_input)(#53)
  • 一次请求 5 种字幕语言触发 YouTube 429:默认改为 zh-Hans,zh,en,可用 AUTOCLIP_YT_SUBTITLE_LANGS 覆盖(#88)

改进

  • Docker 基础镜像 python:3.9-slim → python:3.11-slim(当前 yt-dlp 已不支持 3.9,且 3.9 下只能拿到 360p)
  • docker-compose.yml 四个服务共用 autoclip:local 镜像,只需构建一次
  • CI 新增 docker-smoke job:构建镜像、拉起 redis + api + worker、校验健康检查、yt-dlp 可用、REDIS_URL 连通、worker 监听了全部路由队列
  • 桌面壳启动后端时注入 AUTOCLIP_APP_VERSION,后端 /settings 不再固定返回 1.0.0
  • 桌面壳按平台设置数据目录 AUTOCLIP_APP_DIR(macOS 路径不变;Windows 为 %APPDATA%\AutoClip),Windows 下强制 PYTHONUTF8=1 且不弹控制台窗口
  • src-tauri/Cargo.toml 版本与 tauri.conf.json 对齐
  • desktop-build.yml 改为 macOS + Windows 并行构建,release job 汇总产物,单一平台失败不阻塞另一平台上传

移除

  • 删除无任何引用的 backend/api/v1/youtube_improved.py

1.2.0 - 2026-06-03

接入产品分析,为后续账号 / 商业化打数据地基。

新增

  • 接入 PostHog 匿名产品分析:覆盖安装/启动/更新、素材导入、出片导出、流程失败、设置 API key 等关键事件,每条事件自动携带应用版本/系统/架构等全局属性
  • 设置页新增「隐私与数据」开关,可随时关闭匿名使用统计(关闭立即停止上报,重启仍生效)
  • 新增埋点体系文档 docs/ANALYTICS.md 与中英文隐私政策 docs/PRIVACY.md / docs/PRIVACY.en.md

历史累积(1.0.0 之后陆续加入、此前未单独记录)

  • 视频标题编辑、B站多账号管理与账号健康状态监控、拖拽排序、视频分类、Docker 管理脚本

1.1.0 - 2026-05-31

让 macOS 桌面客户端真正可装、可用、能出片。

新增

  • 🖥️ 桌面客户端零依赖安装:内置便携 Python 运行时 + 静态 ffmpeg/ffprobe,用户无需预装 Python/ffmpeg
  • 🗣️ 本地字幕转写(按需安装):无字幕视频可在「设置 → 语音转写」一键安装 faster-whisper 并自选模型

修复

  • 修复桌面应用启动黑屏(前端 vendor chunk 加载顺序导致 React 未挂载)
  • 修复项目列表一直「加载中」(运行时缺少 pytz 等依赖导致接口 500)
  • 修复导入/重试时「重试失败 / 已开始重试」提示疯狂弹窗的循环
  • 修复处理一直卡在 0%「初始化中」(桌面模式流水线改为本地执行,不再依赖 Redis)
  • 修复换机后无法处理视频(内置 ffmpeg 改为静态自包含版本并正确接入后端)

改进

  • AI 提供商 Gemini 迁移到官方新版 google-genai SDK
  • CI 桌面构建统一为一条经过验证的流程(python-build-standalone)
  • 仓库清理:移除大量历史脚本与一次性文档,整理项目结构

1.0.0 - 2024-01-15

新增

  • 🎬 支持YouTube视频下载
  • 🎬 支持B站视频下载
  • 🎬 支持本地文件上传
  • 🤖 AI智能视频分析
  • ✂️ 自动视频切片
  • 📚 智能合集生成
  • 🎨 现代化Web界面
  • 🚀 异步任务处理
  • 📊 实时进度监控
  • 🔐 B站账号管理
  • 📱 响应式设计
  • 🛠️ 一键启动脚本

技术特性

  • FastAPI后端框架
  • React + TypeScript前端
  • Celery异步任务队列
  • Redis消息代理
  • SQLite数据库
  • WebSocket实时通信
  • 通义千问AI集成

[0.9.0] - 2024-01-01

新增

  • 基础项目架构
  • 核心API接口
  • 基础前端界面
  • 视频处理流水线
  • AI分析服务

技术栈

  • Python 3.8+
  • React 18
  • FastAPI
  • Celery
  • Redis
  • SQLite

版本说明

版本号格式

我们使用语义化版本控制 (SemVer):

  • 主版本号: 不兼容的API修改
  • 次版本号: 向下兼容的功能性新增
  • 修订号: 向下兼容的问题修正

变更类型

  • 新增: 新功能
  • 改进: 现有功能的改进
  • 修复: Bug修复
  • 移除: 移除的功能
  • 安全: 安全相关的修复

链接