# Self Media Video Publisher

把已确认终稿的视频成片发布到 YouTube、抖音、视频号、小红书等平台。用于用户说“发视频、同步发布、上传...

- Repository: https://github.com/yanhua1010/self-media-content-workflow (635 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-10-13
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add yanhua1010/self-media-content-workflow --skill self-media-video-publisher -g -a claude-code -y`
Codex: `npx skills add yanhua1010/self-media-content-workflow --skill self-media-video-publisher -g -a codex -y`
Cursor: `npx skills add yanhua1010/self-media-content-workflow --skill self-media-video-publisher -g -a cursor -y`
Gemini CLI: `npx skills add yanhua1010/self-media-content-workflow --skill self-media-video-publisher -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add yanhua1010/self-media-content-workflow`

## Description

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

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# 视频发布

## 目标

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

## 前置条件

- 终稿已确认：用户完整看过、听过成片。
- 各平台版本和发布字段已就绪，见 `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 生成或合成内容声明时，如实勾选。

## 输出

The rest: https://github.com/yanhua1010/self-media-content-workflow/blob/HEAD/skills/self-media-video-publisher/SKILL.md
