--- 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/`(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)