---
name: self-media-video-publisher
description: 把已确认终稿的视频成片发布到 YouTube、抖音、视频号、小红书等平台。用于用户说“发视频、同步发布、上传 YouTube、发到抖音视频号小红书、定时发布”等场景。按平台核对视频版本、封面、字幕、标题描述和 AI/版权声明，生成逐平台发布包；经用户逐平台授权后，才通过运行时可用的官方 API、填表助手或上传工具上传为私密、草稿或定时，从不一键群发。没有上传能力时交付手动发布包。
---

# 视频发布

## 目标

把确认过的视频成片和平台文案，准确、完整地送到用户选择的平台，并把结果记回任务卡。默认交付手动发布包；外部上传只在逐平台授权后进行，优先上传为私密或草稿，由用户自己点公开。

## 前置条件

- 终稿已确认：用户完整看过、听过成片。
- 各平台版本和发布字段已就绪，见 `self-media-short-video` 的 [video-platform-versions.md](../self-media-short-video/references/video-platform-versions.md) 和平台文案模块的各平台规范。
- 有配乐或素材署名要求时，署名文本已写进各平台描述。

缺少任一项时，报告缺口并停在 `AWAITING_USER`，不带着缺口上传。

## 发布方式分级

从低到高，每升一级都需要用户对该平台、该条视频单独授权：

| 级别 | 方式 | 谁点“发布” | 适用 |
|---|---|---|---|
| L0 手动发布包 | 交付文件、封面、字幕和逐字段文案，用户自己上传 | 用户 | 默认；任何平台 |
| L1 填表助手 | 浏览器扩展或已登录浏览器自动打开发布页并填好字段 | 用户检查后亲自点 | 想省去重复填表，又要逐个把关 |
| L2 私密上传或草稿 | 官方 API 或上传工具上传为私密、不公开或草稿 | 用户在后台检查后公开 | YouTube 官方 API；支持草稿的平台 |
| L3 定时发布 | 上传并设定公开时间 | 到点自动公开 | 只在用户明确给出平台、视频和时间后使用 |

“全部发了吧”这类笼统指令不等于 L3 授权。逐平台列出将要执行的动作（平台、文件、标题、公开范围、时间），用户确认后再执行。

## 适配器发现

先发现当前环境已有的能力，不要求用户为本 Skill 安装特定工具。常见选项和各自边界见 [upload-adapters.md](references/upload-adapters.md)：

- YouTube：优先使用官方 YouTube Data API（用户本人完成 OAuth 授权），或已登录的 YouTube Studio。
- 抖音、视频号、小红书：通常没有面向个人创作者的公开上传 API。可选的有填表类浏览器扩展、基于浏览器自动化的开源上传工具，或用户手动上传。
- 已安装 `sau` 时，可选 [SAU 适配器](references/sau-adapter.md)：先用 `node scripts/publish.mjs --episode <期目录> --platforms douyin,weixin,xhs,youtube --dry-run` 预览，再逐平台确认。视频号传草稿、YouTube 传私密（L2）；抖音、小红书只有 `--mode schedule --at` 的 L3 定时发布，到点自动公开，脚本逐平台要求人工确认且 `--yes` 对它们无效。`--sau` 指定可执行文件，`--yes` 只用于已经逐平台授权的 L2 平台。
- 非官方自动化可能违反平台条款或触发风控，新账号尤其敏感。向用户说明风险，由用户选择。

没有可用适配器，或用户不想安装时，直接交付 L0 手动发布包。

## 发布流程

1. **核对发布包**：逐平台检查视频文件、画幅、时长、封面、字幕、标题、描述、话题、署名和 AI 标识字段，缺什么报什么。
2. **列出执行计划**：每个平台一行，写清发布级别、文件、标题和公开范围或时间。
3. **取得逐平台授权**：用户确认哪些平台、按哪一级执行。
   使用 SAU 脚本时，每个平台都要单独确认；默认草稿路径不支持抖音和小红书，不能用即时上传代替草稿。
4. **执行**：一次处理一个平台。登录失效、验证码、短信验证、风控提示或界面异常时立即停止，交给用户接管，不重试绕过。
5. **回读核对**：上传后打开后台或草稿，核对标题、封面、描述前两行、字幕、公开范围和定时时间。
6. **记录结果**：把发布级别、执行时间、核对结果写回任务卡和发布矩阵。用户报告公开成功后，再记录公开链接。

## 安全边界

- 不一键群发，不在未授权的平台上执行任何写操作。
- 不自动点赞、评论、关注、私信，不刷量。
- Cookie、Token、OAuth 凭据和账号密码只由用户本人或上传工具保存在本机；不读取、不回显，不写入任务卡、日志、发布包或仓库。
- 不代用户输入密码或验证码；登录由用户本人完成。
- 不为躲避版权识别而改变速、加噪音或裁切画面。
- 平台要求 AI 生成或合成内容声明时，如实勾选。

## 输出

返回每个平台的：发布级别、使用的适配器、上传或填表结果、公开范围或定时时间、回读核对结果、需要用户在后台完成的动作。未执行的平台写明原因（未授权、无适配器、风控停止），并附上该平台的手动发布包路径。

可使用 [video-publish-pack-template.md](assets/video-publish-pack-template.md) 生成逐平台手动发布包。
