Files
contentm_agent/.workbuddy/skills/aigc-idea-impression/subskill/content-publish/SKILL.md
T

253 lines
14 KiB
Markdown
Raw Normal View History

---
name: content-publish
description: >
短视频成片的多平台自动投放技能:国内+海外双通道分发。
海外通道基于 Postiz(34 平台:YouTube/TikTok/X/Instagram/Facebook/LinkedIn/Threads/Bluesky 等,官方 API + MCP);
国内通道基于 social-auto-upload(8 平台:抖音/B站/小红书/快手/视频号/百家号,浏览器自动化 CLI + Skill)。
支持一稿多投、立即发布/定时排期/草稿暂存、投放前清单确认、投放后结果校验与报告。
触发场景:投放视频、发布短视频、多平台分发、一键发布、定时投放、跨平台投稿、
海外投放、国内投放、分发到抖音/小红书/B站/YouTube/TikTok 等。
version: "1.0"
updated_at: "2026-08-30"
last_change: "初始版本:基于组合建议(海外 Postiz + 国内 social-auto-upload)构建双通道投放体系,参考 mcn-short-video/短视频脚本创作/V1.0 结构"
deployment: "source"
agent_created: true
---
# 内容发布 Skill
## 技能概述
本技能提供短视频成片的一站式多平台投放能力。从用户需求输入到最终投放完成+报告,共 6 个步骤,每步产出经用户确认后推进,确保投放动作始终受控、可回溯。
**核心能力:**
- **双通道投放**:海外平台走 Postiz(官方 API,稳定合规);国内平台走 social-auto-upload(浏览器自动化,覆盖主流短视频平台)
- **一稿多投**:一个视频文件 + 一套元数据(标题/简介/标签/封面),按平台规格自动适配后分发到多个平台
- **三种投放模式**:立即发布(now)/ 定时排期(schedule)/ 草稿暂存(draft)
- **投放清单确认**:执行前必须展示「平台×账号×时间×内容」完整清单,用户确认后才可执行
- **结果校验与报告**:投放后逐个平台核对状态,输出投放报告(成功/失败/待审核/链接)
**支持通道:**
| 通道 | 载体 | 覆盖平台 | 连接方式 |
|------|------|---------|---------|
| 海外 | Postiz Cloud | YouTube、TikTok、X、Instagram、Facebook、LinkedIn、Threads、Bluesky、Reddit、Telegram 等 34 个 | 官方 REST API / MCP(API Key) |
| 国内 | social-auto-upload | 抖音、B站、小红书、快手、视频号、百家号 | 浏览器自动化 CLI(Cookie/扫码) |
---
## 双通道架构(P0)
```
┌─────────────────────────────────────────────┐
│ 短视频成片 + 元数据 │
└──────────────────┬──────────────────────────┘
│
┌─────────────────┴─────────────────┐
│ 通道选择规则 │
│ 海外平台 → Postiz(官方 API) │
│ 国内平台 → social-auto-upload │
└─────────────────┬─────────────────┘
┌─────────────────────┴─────────────────────┐
▼ ▼
┌─────────────────────┐ ┌──────────────────────┐
│ 海外通道(Postiz) │ │ 国内通道(SAU) │
│ GET /integrations │ │ sau accounts │
│ POST /posts │ │ sau xx upload-video │
│ GET /posts │ │ sau history │
│ 立即/定时/草稿 │ │ 立即/定时(按平台) │
└─────────────────────┘ └──────────────────────┘
```
**通道选择规则(强制):**
- 目标平台属于 **海外平台**(YouTube/TikTok/X/Instagram/Facebook/LinkedIn/Threads/Bluesky/Reddit/Telegram 等)→ 只走 **Postiz**
- 目标平台属于 **国内平台**(抖音/B站/小红书/快手/视频号/百家号)→ 只走 **social-auto-upload**
- **禁止跨通道混用**:不得用 Postiz 投国内平台,也不得用 SAU 投其未覆盖的海外平台(TikTok/YouTube 属于 SAU 覆盖范围,但优先走 Postiz——官方 API 比浏览器自动化稳定;仅当用户明确要求或 Postiz 不可用时才走 SAU)
- 同一视频可同时投国内外(如抖音+YouTube),两条通道各自独立执行,互不阻塞
---
## 触发条件
当用户表达以下任一意图时加载本技能:📤投放视频 / 🚀多平台发布 / ⏰定时投放 / 🎬一键分发 / 📡跨平台投稿 / 🌍海外投放 / 🇨🇳国内投放
> 详细触发示例见:[帮助文档.md](帮助文档.md)
---
## 外部依赖与凭证
### 1. 海外通道:Postiz(必需,投放海外平台时)
- **服务**:Postiz Cloud(app.postiz.com)或自托管实例
- **凭证**:API Key(Settings → Developers → Public API 生成)
- **获取方式**:用户提供后**只写入环境变量 `POSTIZ_API_KEY`**,禁止硬编码到任何脚本/文档
- **API 端点**:`https://api.postiz.com/public/v1`(REST);`https://api.postiz.com/mcp/<api-key>`(MCP)
- **安装检查**:首次投放海外前,检查 `POSTIZ_API_KEY` 是否存在 → 缺失则提示用户在 postiz.com 生成并提供
- **限流**:创建贴文端点 90 次/小时(云版 100 次/小时),批量投放时单请求多平台合并提交
### 2. 国内通道:social-auto-upload(必需,投放国内平台时)
- **项目**:github.com/dreammis/social-auto-upload(10.9k+ stars)
- **安装**:`git clone` → `pip install -r requirements.txt`(Python 3.10+,需 Playwright/patchright 浏览器)
- **命令**:`sau`(CLI 入口);各平台登录用扫码/Cookie
- **登录态**:`sau accounts` 检查各平台登录状态;Cookie 失效需重新扫码(账号文件按 account_name 存储)
- **Skill 化**:项目自带 Agent Skill(供 Claude Code/OpenClaw 调用),本技能通过 CLI 调用
### 3. 素材来源
- 视频文件:本地绝对路径(投放前校验存在性/大小/时长)
- 元数据:标题、简介、标签、封面(可来自用户、创作技能产出或投放清单模板)
---
## 6 步投放流程
### 流程总览
```
用户输入
│
├─ 步骤1: 意图识别 ──→ [Gate-0 投放需求确认]
│
├─ 步骤2: 投放准备 ──→ [Gate-1 素材与清单确认]
│
├─ 步骤3: 渠道状态检查 ──→ [Gate-2 渠道就绪确认]
│
├─ 步骤4: 执行投放 ──→ [Gate-3 执行前最终确认]
│
├─ 步骤5: 结果校验 ──→ [Gate-4 校验结果确认]
│
└─ 步骤6: 投放报告 ──→ [交付投放报告]
```
> **模式说明:** 本技能默认**共创模式**——每个 Gate 必须向用户展示当前产物并等待确认后才推进,尤其 Gate-3(执行前确认)不可跳过。投放动作涉及外部平台真实发布,禁止在未确认情况下执行。
---
### 步骤 1:意图识别
**目的:** 将用户投放需求按五要素拆解(内容源/目标平台/账号/时间/模式),判定信息完整度,生成缺失清单。
**输出:** 五要素状态表 + 缺失清单 + 会话状态初始化。
> 详细提示词和输出模板见:[1_意图识别.md](references/投放流程/1_意图识别.md)
---
### 步骤 2:投放准备
**目的:** 核对视频素材与元数据,按目标平台规格校验(格式/时长/分辨率/标题字数/标签数),生成投放清单(平台×账号×时间×内容)。
**输出:** 素材校验结果 + 投放清单(每条记录含:平台/账号/时间/标题/简介/标签/封面)+ 适配说明。
**用户确认:** Gate-1(素材与清单确认)。
> 详细提示词和输出模板见:[2_投放准备.md](references/投放流程/2_投放准备.md)
---
### 步骤 3:渠道状态检查
**目的:** 检查各目标渠道的就绪状态:海外 → `GET /integrations`(Postiz 已连接账号);国内 → `sau accounts`(各平台登录态)。
**输出:** 渠道状态表(平台/账号/状态:就绪/未连接/登录过期)+ 待处理问题清单。
**用户确认:** Gate-2(渠道就绪确认)——未就绪渠道必须处理完成或从清单移除后才能继续。
> 详细提示词和输出模板见:[3_渠道状态检查.md](references/投放流程/3_渠道状态检查.md)
---
### 步骤 4:执行投放
**目的:** 按确认后的投放清单执行:海外走 Postiz API(`POST /posts`,now/schedule/draft);国内走 `sau` CLI(upload-video 等)。逐条执行、逐条记录结果。
**输出:** 执行记录(每条:平台/账号/时间/提交结果/返回 ID)。
**用户确认:** Gate-3(执行前最终确认)——展示最终投放清单,用户明确确认后才开始执行;定时任务需注明计划时间。
> 详细提示词和输出模板见:[4_执行投放.md](references/投放流程/4_执行投放.md)
---
### 步骤 5:结果校验
**目的:** 投放后校验各平台实际状态:海外 → `GET /posts`(状态查询);国内 → `sau history`(发布记录)。区分成功/待审核/失败。
**输出:** 校验结果表(平台/账号/状态/失败原因/重试建议)。
**用户确认:** Gate-4(校验结果确认)。
> 详细提示词和输出模板见:[5_结果校验.md](references/投放流程/5_结果校验.md)
---
### 步骤 6:投放报告
**目的:** 汇总全流程产出投放报告:投放概览、各平台结果、链接汇总、复盘建议(含风控提示)。
**输出:** 投放报告(含时间线、状态明细、下一步建议)。
**最终交付物:** 投放报告可直接落盘(`投放报告_{日期}_{批次}.md`,落盘路径见 [投放流程规范.md](references/投放流程规范.md) 五)。
> 详细提示词和输出模板见:[6_投放报告.md](references/投放流程/6_投放报告.md)
---
## 关键规则
### 〇、方案与执行分离(P0)
用户要求「分析/方案/能不能投/计划」→ **只输出分析与方案,禁止实际投放**;仅当用户显式授权("投放/执行/确定/就这么投")或直接指令时才执行。修改 SKILL.md / references 等规则文件前,必须先列出将修改的文件清单等用户批准。
### 一、执行前确认机制(P0)
投放是外部真实动作,**Gate-3 执行前确认强制生效**,不可预判通过、不可静默执行。每次投放必须展示完整清单(平台×账号×时间×内容)并等待明确确认。国内平台投放(浏览器自动化)额外要求:首次投放用测试账号验证。
### 二、凭证安全(P0)
- API Key / Token / Cookie **禁止硬编码**到脚本或文档;只从环境变量(`POSTIZ_API_KEY`)或用户即时提供获取
- 国内平台 Cookie 属敏感凭证,仅存于 social-auto-upload 的账号文件内,不外泄、不写入日志
- 脚本中读取凭证统一走 `scripts/check_env.py` 检查
### 三、双通道隔离(P0)
海外平台只走 Postiz,国内平台只走 social-auto-upload,禁止跨通道混用。TikTok/YouTube 双覆盖时优先 Postiz(官方 API 更稳定),仅当 Postiz 不可用时才回退 SAU。
### 四、国内平台风控(P0)
浏览器自动化投放在国内平台存在账号风控风险。投放前必须执行风控检查:单账号日投放上限、频率间隔、新号冷启动限制;异常(限流/封禁提示)立即停止并报告。详见 [国内平台风控策略.md](references/知识库/02_风控合规/国内平台风控策略.md)。
### 五、动态增量管理
Skill 部署到非原始开发路径时,用户新增的投放知识/平台规则/铁律统一归入 `references-add/`。运行时六大维度同时加载 `references/` + `references-add/`,取并集,标准库优先。
> 完整规则见:[references-add/README.md](references-add/README.md)
### 六、审计与修复工作方式
审计发现问题后修复时,逐条读取→逐条修改→逐条验证,禁止批量读取准备批量修改。
---
## 文件目录概览
```
mcn-video-publish/ ← Skill 根目录
├── SKILL.md ← 入口文件(双通道架构+6步流程+规则摘要)
├── 帮助文档.md ← 使用指南+触发示例
├── scripts/ ← 辅助脚本(环境检查 + Postiz API 封装)
├── references/ ← 标准库
│ ├── 投放流程规范.md ← Gate/凭证/落盘/风控 规则权威源
│ ├── 投放流程/1~6_*.md ← 6步详细逻辑
│ ├── 接口调用/ ← Postiz API + social-auto-upload CLI 规范
│ └── 知识库/
│ ├── 01_平台规格/ ← 海外+国内平台视频规格
│ └── 02_风控合规/ ← 国内风控 + 海外限流合规
└── references-add/ ← 增量目录(部署后用户新增内容归入此处)
```
> 平台规格 → [01_平台规格](references/知识库/01_平台规格)
> 风控合规 → [02_风控合规](references/知识库/02_风控合规)
> 快速启动模板 → [帮助文档.md](帮助文档.md)