按源仓库内容呈现,保留标题、案例、代码、表格、链接以及原文引用的演示图片。
视频发布
目标
把确认过的视频成片和平台文案,准确、完整地送到用户选择的平台,并把结果记回任务卡。默认交付手动发布包;外部上传只在逐平台授权后进行,优先上传为私密或草稿,由用户自己点公开。
前置条件
- 终稿已确认:用户完整看过、听过成片。
- 各平台版本和发布字段已就绪,见
self-media-short-video的 video-platform-versions.md 和平台文案模块的各平台规范。 - 有配乐或素材署名要求时,署名文本已写进各平台描述。
缺少任一项时,报告缺口并停在 AWAITING_USER,不带着缺口上传。
发布方式分级
从低到高,每升一级都需要用户对该平台、该条视频单独授权:
| 级别 | 方式 | 谁点“发布” | 适用 |
|---|---|---|---|
| L0 手动发布包 | 交付文件、封面、字幕和逐字段文案,用户自己上传 | 用户 | 默认;任何平台 |
| L1 填表助手 | 浏览器扩展或已登录浏览器自动打开发布页并填好字段 | 用户检查后亲自点 | 想省去重复填表,又要逐个把关 |
| L2 私密上传或草稿 | 官方 API 或上传工具上传为私密、不公开或草稿 | 用户在后台检查后公开 | YouTube 官方 API;支持草稿的平台 |
| L3 定时发布 | 上传并设定公开时间 | 到点自动公开 | 只在用户明确给出平台、视频和时间后使用 |
“全部发了吧”这类笼统指令不等于 L3 授权。逐平台列出将要执行的动作(平台、文件、标题、公开范围、时间),用户确认后再执行。
适配器发现
先发现当前环境已有的能力,不要求用户为本 Skill 安装特定工具。常见选项和各自边界见 upload-adapters.md:
- YouTube:优先使用官方 YouTube Data API(用户本人完成 OAuth 授权),或已登录的 YouTube Studio。
- 抖音、视频号、小红书:通常没有面向个人创作者的公开上传 API。可选的有填表类浏览器扩展、基于浏览器自动化的开源上传工具,或用户手动上传。
- 已安装
sau时,可选 SAU 适配器:先用node scripts/publish.mjs --episode <期目录> --platforms douyin,weixin,xhs,youtube --dry-run预览,再逐平台确认。视频号传草稿、YouTube 传私密(L2);抖音、小红书只有--mode schedule --at的 L3 定时发布,到点自动公开,脚本逐平台要求人工确认且--yes对它们无效。--sau指定可执行文件,--yes只用于已经逐平台授权的 L2 平台。 - 非官方自动化可能违反平台条款或触发风控,新账号尤其敏感。向用户说明风险,由用户选择。
没有可用适配器,或用户不想安装时,直接交付 L0 手动发布包。
发布流程
- 核对发布包:逐平台检查视频文件、画幅、时长、封面、字幕、标题、描述、话题、署名和 AI 标识字段,缺什么报什么。
- 列出执行计划:每个平台一行,写清发布级别、文件、标题和公开范围或时间。
- 取得逐平台授权:用户确认哪些平台、按哪一级执行。
使用 SAU 脚本时,每个平台都要单独确认;默认草稿路径不支持抖音和小红书,不能用即时上传代替草稿。
- 执行:一次处理一个平台。登录失效、验证码、短信验证、风控提示或界面异常时立即停止,交给用户接管,不重试绕过。
- 回读核对:上传后打开后台或草稿,核对标题、封面、描述前两行、字幕、公开范围和定时时间。
- 记录结果:把发布级别、执行时间、核对结果写回任务卡和发布矩阵。用户报告公开成功后,再记录公开链接。
安全边界
- 不一键群发,不在未授权的平台上执行任何写操作。
- 不自动点赞、评论、关注、私信,不刷量。
- Cookie、Token、OAuth 凭据和账号密码只由用户本人或上传工具保存在本机;不读取、不回显,不写入任务卡、日志、发布包或仓库。
- 不代用户输入密码或验证码;登录由用户本人完成。
- 不为躲避版权识别而改变速、加噪音或裁切画面。
- 平台要求 AI 生成或合成内容声明时,如实勾选。
输出
返回每个平台的:发布级别、使用的适配器、上传或填表结果、公开范围或定时时间、回读核对结果、需要用户在后台完成的动作。未执行的平台写明原因(未授权、无适配器、风控停止),并附上该平台的手动发布包路径。
可使用 video-publish-pack-template.md 生成逐平台手动发布包。

