YouTube 字幕金句拼接图
交付可溯源的真实视频字幕拼接图,而不是重新生成人物或把金句重绘成大标题。默认保留原语言、原字幕、水印与真实镜头切换。使用本包脚本,不依赖其他 skill 或旧项目的绝对路径。
开始或继续
-
先定位 Python 环境和用户的输出目录;现有 job 先执行
scripts/workflow.py status JOB。 -
创建、导入 shortlist/selection/captions 前阅读 数据结构。
-
环境已有依赖就复用;不擅自全局安装软件、更改系统代理或读取浏览器 Cookie。
-
仅制作图片时不强制生成社交平台配文;用户要求完整内容工作流时再生成相应平台的草稿,不擅自添加账号或发布目标。
-
用户要求发布现成图片时,直接阅读 浏览器发布,定位对应 job 和成品,不重复下载、选句或渲染。用
scripts/publish_queue.py校验素材、规划时间和记录进度;页面操作优先 Computer Use,已获准使用 AppleScript 时按该手册的替代路线继续。 -
写标题与社交配文时,阅读 读者配文。图片承载原话,配文提供有依据的理解、具体感受与讨论入口,不把制作说明写给读者。
-
macOS Chrome 控制故障且用户允许 AppleScript 时,阅读 Apple 事件 DOM 操作。只有当前工具规则也允许替代技术时使用;复用已有授权,先读后写,提交按队列记账。
必须保留的判断与审核
- 字幕轨可用时先分析字幕,避免不必要的整集下载;只有烧录字幕时,为识别文字可先下载真实视频。优先使用已有完整本地媒体。
- 使用有界获取路线。记录错误类型;一次正常尝试失败后只尝试一种有依据的替代路线。403/LOGIN_REQUIRED 不循环碰撞,交还用户解决授权或提供本地媒体。
- OCR 只是候选定位器。阅读本地候选包而非反复读取全篇;对进入候选的原话核对真实帧和上下文。抽样识别不能声称是无遗漏、完全校对的逐字稿。
- 呈现候选 ID、逐字文字、时间、说话人、分享理由、上下文风险,停在
awaiting_quote_selection。不为凑数量收录弱句。 - 用户明确选 ID 后才执行
choose-quotes。随后build_selection.py从已选候选逐字生成草稿,保留精确frame_seconds,再导入。不要默默改字、删句或合并未披露的跳剪。 - native 模式只使用真实视频,第一块保留完整画面,后续块从相同比例的帧中裁切字幕条;禁止第一句额外放大。默认不加翻译、标题、伪造字幕。
- 检查图片数量、尺寸、每句原文、人物与裁切。自动 QA 不代替视觉核对。交付原图、预览、时间点及可用的配文/审核包。
- 仅制作时停在
awaiting_review;制作与下载授权不是发布授权。用户另行要求外部发布时,按浏览器发布流程核对具体素材、目标账号与操作范围,沿用会话中已经明确的授权,不重复询问。不能把注明来源当作已取得版权许可。
如果原片本身字幕大小不同,等比例裁切不会神奇地统一字体;先说明,必要时征求同意再改用重排字幕模式。没有硬字幕的视频,不能将其称为“原生字幕图”。
关键默认值
- 本次验证:macOS + Apple Vision OCR;其他系统需要用户提供字幕或选择已配置的本地识别工具,不声称跨平台 OCR 已验证。
- native 默认
subtitle-stack。保持源宽度或等比例缩小,不为“高清”放大低清源。 - 自然高度:缩放后完整帧高度 + (句数 − 1) × 字幕条高度。不要为固定纵横比放大条内字幕。每张当前支持 3–6 句,超出则讨论分组或显式调整渲染器,不能暗删。
- 本地下载、裁切、OCR 和检查交给脚本;模型负责选句判断、核对、配文。没有实测 Token 数据就写“未记录”,不用台账里的 0 或账户限额比例推算实际 Token。
用户只要求排查下载时,仅运行媒体诊断,不扩展到金句生产。