# Multi Platform Publish

> 辅助上传视频并填写小红书、抖音、快手、微信视频号发布页面，由用户检查并完成最终发布的工作流

- Skill: `krillinai/multi-platform-publish` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add krillinai/multi-platform-publish`
- Raw SKILL.md: https://api.skillmd.com/api/skills/krillinai/multi-platform-publish/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: krillinai (https://skillmd.com/u/krillinai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/krillinai/multi-platform-publish

---


# Multi-Platform Video Publisher

## 概述

这个 Skill 帮助你将视频和元数据信息依次填写到小红书、抖音、快手、微信视频号的发布页面。支持全平台或选择性处理，但最终发布按钮必须由用户在浏览器中检查并手动点击。

## 触发条件

用户说以下任何一种：
- "发布视频到所有平台"
- "多平台发布"
- "上传视频到[平台名]"
- "发布到小红书和抖音"
- 提供 JSON 配置文件路径

## 前置条件检查

在开始发布前，自动检查：
1. ✅ 视频文件是否存在
2. ✅ 目标平台的 Cookie 文件是否存在
3. ✅ Python 脚本文件是否存在
4. ✅ 元数据是否完整
5. ✅ 用户是否确认目标账号、平台和视频

## 执行流程

### 阶段 1: 配置准备

1. **收集配置信息**

   如果用户提供了 JSON 配置文件：
   ```bash
   # 读取配置文件
   cat {config_file}
   ```

   如果用户没有提供配置，使用 AskUserQuestion 工具询问：
   - 视频文件路径（必填）
   - 标题（必填）
   - 描述（必填）
   - 标签（必填，逗号分隔）
   - 目标平台（可选，默认全部）

2. **验证配置**
   ```bash
   # 检查视频文件
   ls -lh "{video_path}"

   # 检查 Python 脚本
   ls -1 *_uploader.py

   # 检查 Cookie 文件
   ls -1 cookiesFile/*.json 2>/dev/null || echo "未找到 Cookie 文件"
   ```

3. **显示配置摘要并取得明确确认**

   使用 AskUserQuestion 工具展示配置并请求确认：
   ```
   📹 视频: {video_path} ({file_size})
   📝 标题: {title}
   📄 描述: {description}
   🏷️  标签: {tags}
   🎯 目标平台: {platforms}

   配置信息正确吗？
   ```

### 阶段 2-5: 平台发布循环

对于每个目标平台（小红书、抖音、快手、微信视频号），按顺序执行：

**平台映射：**
- 小红书 → `xhs_uploader.py`
- 抖音 → `douyin_uploader.py`
- 快手 → `kuaishou_uploader.py`
- 微信视频号 → `wechat_channels_uploader.py`

**发布步骤：**

1. **检查 Cookie 文件**
   ```bash
   ls cookiesFile/{platform}_*.json 2>/dev/null
   ```

   如果不存在，提示用户：
   ```
   ⚠️  {平台名} Cookie 文件不存在
   请先运行登录命令：python {platform}_uploader.py login

   是否跳过该平台继续发布？
   ```

2. **执行上传命令**
   ```bash
   python {platform}_uploader.py upload \
     --video "{video_path}" \
     --title "{title}" \
     --desc "{description}" \
     --tags "{tags}" \
     --account "{account_path}"
   ```

3. **监控上传进度**
   - 实时显示脚本输出
   - 等待脚本完成或用户确认

4. **记录结果**
   - 用户确认平台已发布：✅ {平台名}已确认发布
   - 失败：❌ {平台名}发布失败 - {错误信息}
   - 跳过：⏭️  {平台名}已跳过

不要仅根据脚本以退出码 `0` 结束就报告发布成功。脚本完成只代表自动填写流程结束；最终状态需要用户确认或平台页面提供可检查的成功反馈。

### 阶段 6: 生成发布报告

汇总所有平台的发布结果：

```
=== 📊 发布报告 ===
视频: {video_path}
标题: {title}
开始时间: {start_time}
结束时间: {end_time}
总耗时: {duration}

平台发布结果:
✅ 小红书: 用户已确认发布
✅ 抖音: 用户已确认发布
❌ 快手: 上传超时
⏭️  微信视频号: 已跳过

已确认: 2/4
失败: 1/4
跳过: 1/4

失败详情:
- 快手: 网络超时，建议稍后重试
```

## 错误处理策略

### 视频文件不存在
- 立即停止，提示用户检查文件路径
- 不继续执行后续平台

### Cookie 过期
- 提示用户重新登录该平台
- 提供登录命令：`python {platform}_uploader.py login`
- 询问是否跳过该平台继续发布

### 上传失败
- 记录错误信息
- 继续下一个平台
- 在最终报告中显示失败详情

### 网络超时
- 记录超时信息
- 继续下一个平台
- 在最终报告中提示用户稍后重试

## JSON 配置文件格式

如果用户提供 JSON 配置文件，格式如下：

```json
{
  "video": "videos/demo.mp4",
  "metadata": {
    "title": "7分钟赶走脑雾",
    "description": "感觉大脑迟钝、分心或精神疲惫？这个视频教你科学方法快速恢复专注力。",
    "tags": "脑雾,专注力,神经科学,心理技巧,效率提升"
  },
  "platforms": ["xhs", "douyin", "kuaishou", "wechat"],
  "accounts": {
    "xhs": "cookiesFile/xhs_account.json",
    "douyin": "cookiesFile/douyin_account.json",
    "kuaishou": "cookiesFile/kuaishou_account.json",
    "wechat": "cookiesFile/wechat_account.json"
  }
}
```

**字段说明：**
- `video`: 视频文件路径（必填）
- `metadata.title`: 视频标题（必填）
- `metadata.description`: 视频描述（必填）
- `metadata.tags`: 标签，逗号分隔（必填）
- `platforms`: 目标平台列表（可选，默认全部）
- `accounts`: 各平台 Cookie 文件路径（可选，默认使用脚本自动查找）

## 使用示例

### 示例 1: 交互式发布

```
用户: 发布视频到所有平台
LLM: 好的，请提供以下信息：
     1. 视频文件路径
     2. 标题
     3. 描述
     4. 标签

用户: 视频是 videos/demo.mp4，标题是"7分钟赶走脑雾"...
LLM: [执行发布流程]
```

### 示例 2: 使用 JSON 配置

```
用户: 使用 publish_config.json 发布视频
LLM: [读取配置文件]
     [显示配置摘要]
     [询问确认]
     [执行发布流程]
```

### 示例 3: 选择性发布

```
用户: 只发布到小红书和抖音
LLM: [收集配置信息]
     [只执行小红书和抖音的发布流程]
```

## 注意事项

1. **默认发布顺序**: 小红书 → 抖音 → 快手 → 微信视频号
2. **人工确认必需**: 每个平台都需要用户检查内容并手动点击最终发布按钮
3. **错误不中断**: 某平台失败不影响其他平台发布
4. **Cookie 管理**: 确保各平台 Cookie 有效，过期需重新登录
5. **视频格式**: 建议先使用 MP4，实际限制以平台当前页面为准
6. **标签限制**:
   - 抖音：最多 5 个标签
   - 快手：最多 3 个标签
   - 小红书、微信：以平台当前页面为准

## 常见问题

### Q: 如何重新登录某个平台？
```bash
python xhs_uploader.py login
python douyin_uploader.py login
python kuaishou_uploader.py login
python wechat_channels_uploader.py login
```

### Q: 如何只发布到部分平台？
在配置阶段指定目标平台，或在 JSON 配置文件中设置 `platforms` 字段。

### Q: 发布失败如何重试？
查看失败原因，修复后重新运行 skill，或单独调用失败平台的脚本。

### Q: Cookie 文件保存在哪里？
默认保存在项目根目录的 `cookiesFile/` 文件夹下。

### Q: 如何在其他项目中使用这个 skill？
将 `.claude/skills/multi-platform-publish/` 目录复制到 `~/.claude/skills/` 即可在任何项目中使用。

## 实现细节

### 平台特性处理

**小红书：**
- 支持标题、描述、标签
- 自动检测上传完成
- 手动确认发布

**抖音：**
- 标题（30字限制）+ 描述 + 话题标签（最多5个）
- 自动选择推荐封面
- 支持两种版本的发布页面

**快手：**
- 标题 + 描述 + 话题标签（最多3个）
- 所有内容填充在同一个描述框
- 自动检测上传完成

**微信视频号：**
- 描述 + 话题标签（建议3个）+ 短标题（6-16字符）
- 自动格式化短标题
- 微信扫码登录

### 错误恢复机制

1. **Cookie 过期检测**
   - 检查登录状态
   - 提示重新登录
   - 提供跳过选项

2. **上传超时处理**
   - 设置合理的超时时间
   - 记录超时信息
   - 继续下一个平台

3. **网络错误处理**
   - 记录脚本返回的错误
   - 当前脚本不提供统一自动重试
   - 用户确认后可单独重试失败平台

## 全局安装指南

要在任何 Claude Code 窗口中使用这个 skill：

1. **复制 skill 到全局目录**
   ```bash
   cp -r .claude/skills/multi-platform-publish ~/.claude/skills/
   ```

2. **验证安装**
   ```bash
   ls ~/.claude/skills/multi-platform-publish/
   ```

3. **在任何项目中使用**
   ```
   用户: /multi-platform-publish
   或
   用户: 发布视频到所有平台
   ```

4. **注意事项**
   - 确保目标项目包含 `*_uploader.py` 脚本
   - 确保 `cookiesFile/` 目录存在
   - 视频文件路径使用绝对路径或相对于当前项目的路径

