# auto-publisher 知识猎取报告 —— knowhow_v1.md > 调研目标:为多平台内容自动化发布(微博、微信公众号、抖音、小红书、视频号)构建一套可扩展、可落地的技术知识体系。 > 生成时间:2026-04-09 > 调研 Agent:Hunter --- ## Phase 1:问题澄清 —— 核心子问题与平台差异 ### 1.1 自动化发布的定义边界 自动化发布不是"一键群发完全相同的内容到所有平台",而是: 1. **内容预处理**:根据平台格式要求进行适配(标题长度、图片尺寸、视频时长、标签规范)。 2. **定时/批量调度**:按平台黄金时段错峰发布,避免触发风控。 3. **发布执行**:通过官方 API 或浏览器自动化(RPA)完成实际上传。 4. **状态追踪与重试**:记录每篇内容在每个平台的发布状态(成功/失败/审核中),并实现自动重试。 5. **合规与风控**:内容预审、敏感词过滤、AIGC 标识、水印去重。 ### 1.2 五大平台发布能力矩阵 | 平台 | 官方发布 API | 开放平台门槛 | 主流自动化方案 | 核心限制 | |------|-------------|-------------|---------------|---------| | **微博** | 有 (`statuses/update`, `statuses/share`) | 企业/个人开发者均可申请 | 官方 API + OAuth2.0 | 企业号日限 100 条,个人号日限 30 条 | | **微信公众号** | 有 (`draft/add`, `freepublish/submit`) | 需配置 IP 白名单 | 官方 API + 第三方封装 | 群发受限(订阅号日 1 次,服务号月 4 次);发布无次数限制 | | **抖音** | 有(`video/upload`, `video/create`) | **仅对企业开发者开放** | 官方 API(企业)/ 浏览器自动化(个人) | 日调用上限 500~10000 次(按权限等级) | | **小红书** | **无官方公开 API** | 不接受个人/第三方发布 API 申请 | **浏览器自动化 / RPA 为主** | 严禁自动化,违规可能限流/封号 | | **视频号** | **无官方自动发布 API** | 不开放 | **浏览器自动化 / 真机 RPA** | 高度依赖前端 DOM,易因改版失效 | ### 1.3 关键技术风险点 - **API 政策收紧**:2024-2025 年,微博、抖音均收紧了第三方应用的内容发布权限,强调"场景绑定"和"企业资质"。 - **RPA 不稳定**:抖音、小红书、视频号的前端页面频繁改版,基于 CSS selector 的自动化脚本平均寿命 3-6 个月。 - **AIGC 标识合规**:2025 年 9 月起,各平台对 AI 生成内容强制要求显式+隐式双重标识,未标注将面临限流。 - **内容去重风控**:跨账号直接分发相同内容(MD5/视频指纹重复率 > 30%)极易被平台限流或判定为低质营销号。 --- ## Phase 2:研究 Knowhow —— 各平台发布规范与自动化方案 ### 2.1 微博 #### 接口规范 - 发布纯文本:`POST https://api.weibo.com/2/statuses/update.json` - 发布含链接分享:`POST https://api.weibo.com/2/statuses/share.json` - 认证:OAuth2.0 Bearer Token - 日限:企业 100 条,个人 30 条 #### 2025 年新规 - API 调用必须与业务场景绑定,禁止泛化调用。 - 强制 HTTPS 传输 App Key,配置 IP 白名单。 - AI 生成内容需主动声明,平台已增设"未添加 AI 标识"投诉分类。 --- ### 2.2 微信公众号 #### 接口流程 1. 获取 `access_token`(有效期 2 小时,需定时刷新) 2. 上传正文图片:`/cgi-bin/media/uploadimg` 3. 上传封面图(永久素材)获取 `thumb_media_id` 4. 新建草稿:`/cgi-bin/draft/add` 5. 发布文章:`/cgi-bin/freepublish/submit` #### 格式限制 - 正文:HTML,不含 JS,< 20,000 字符,< 1MB - 正文图片:JPG/PNG,< 1MB,必须使用微信域名 URL - 封面图:必须是永久素材的 `media_id` - 群发 vs 发布:订阅号群发日限 1 次,服务号月限 4 次;发布(freepublish)不产生推送通知,**无次数限制**。 #### 第三方封装 - `wechat-article-publisher-skill`:支持 Markdown 自动转 HTML,保存为草稿不自动群发。 --- ### 2.3 抖音 #### 官方 API(企业级) - 上传视频:`POST https://open.douyin.com/video/upload/` - 创建发布:`POST https://open.douyin.com/video/create/` - 参数:`video_id`, `title` (≤100), `video_desc` (≤500), `cover`, `tags`, `latitude`/`longitude` - 大文件支持分片上传 #### 个人/小团队方案 - **浏览器自动化**:`social-auto-upload` (Python + Playwright) 是目前中文社区最活跃的开源项目,支持定时发布、多账号矩阵、CLI。 - **真机/云手机 RPA**:`Airtest` / `Appium`,最接近真人环境,支持挂载小黄车,但单条上传耗时 ~8 分钟,成本高。 #### 内容规范 - AIGC 强制显著标识(2024 年抖音规范)。 - 视频重复率 > 30% 触发限流,需进行帧率调整、随机转场、声纹扰动等去重处理。 --- ### 2.4 小红书 #### 核心结论 - **无官方公开内容发布 API**。 - 平台协议明确禁止自动化工具,违规可能限流/封号。 #### 内容格式 - 标题:≤ 20 字(建议 8-20 字) - 正文:300-1000 字,多分段、短句、Emoji - 图片:1-9 张,封面推荐 1080×1440(3:4) - 标签:5-8 个 #### 自动化实现 - **主流技术**:`Selenium`、`Playwright`、`Go-rod` 模拟真人浏览器操作。 - **代表项目**:`xiaohongshu-mcp`(Go + Chrome Headless),支持通过 MCP 协议与 Claude Code / n8n 集成。 #### 2025 年严管政策 - 7 月起严禁使用第三方工具发货推广,不使用平台官方推广即视为违规营销。 - 3 月起交易导流治理规则生效,严禁引导站外交易(微信号、二维码、外链),情节严重永久封号。 --- ### 2.5 视频号 #### 核心结论 - **无面向外部开发者的自动发布 API**。 - 现有方案与抖音类似:浏览器自动化(`social-auto-upload` 的 `tencent_uploader`)或真机 RPA。 - 视频号黄金时段:12:00-14:00(午休高峰)。 --- ### 2.6 内容预处理方法论 #### 平台适配清单 | 维度 | 微博 | 微信公众号 | 抖音 | 小红书 | 视频号 | |------|------|-----------|------|--------|--------| | 标题长度 | ≤ 140(微博即正文) | ≤ 64 字 | ≤ 100 字 | ≤ 20 字 | ≤ 100 字 | | 正文长度 | 默认 140,会员 5000 | < 2 万字符 | ≤ 500 字描述 | 300-1000 字 | ≤ 1000 字 | | 图片尺寸 | 多图自适应 | 封面 900×383 | 竖屏 9:16 | 1080×1440 (3:4) | 竖屏 9:16 | | 图片数量 | ≤ 18 张 | 正文不限,封面 1 张 | - | 1-9 张 | - | | 视频时长 | ≤ 15 分钟 | ≤ 30 分钟(订阅号) | ≤ 60 分钟 | ≤ 15 分钟 | ≤ 30 分钟 | | 标签/话题 | #话题# | 不支持 | #标签 | #标签 | #标签 | | AIGC 标识 | 需声明 | 建议声明 | 强制显著标识 | 强制双标识 | 建议声明 | #### 去重策略(避免平台限流) - **视频去重**:修改 MD5、调整帧率、添加 0.5 秒随机转场、加载 3dB 环境底噪改变声纹。 - **文案去重**:同义词替换、句式模板轮换、每 5 条内容更换一套模板。 - **图片去重**:轻微裁剪、叠加隐形水印、调整饱和度/亮度。 --- ## Phase 3:寻找标杆 —— 开源工具与商业方案 ### 3.1 开源工具标杆 | 项目名称 | 技术栈 | 支持平台 | 核心亮点 | |---------|--------|---------|---------| | **social-auto-upload** | Python + Playwright | 抖音、B站、小红书、视频号、快手、TikTok、YouTube | 中文社区最活跃;支持定时发布、CLI、矩阵运营 | | **@profullstack/social-poster** | Node.js + Puppeteer | X、TikTok、LinkedIn、Pinterest、Reddit、Facebook | 无需官方 API,AI 生成内容,自动录制 UI selector | | **social_post** | Next.js + Convex | X/Twitter、LinkedIn | 自托管免费替代 Buffer;Twitter Thread 支持;AES-256 加密 Token | | **xiaohongshu-mcp** | Go + Chrome Headless | 小红书 | 基于 MCP 协议,可与 Claude Code / n8n 集成 | | **wechat-article-publisher-skill** | Python | 微信公众号 | Markdown 转 HTML,自动保存为草稿 | ### 3.2 商业 SaaS 标杆 | 工具 | 定位 | 特点 | |------|------|------| | **Buffer** | 国际主流排期工具 | 简洁易用,支持多平台,付费订阅 | | **Hootsuite** | 企业级社媒管理平台 | 分析报表强,团队协作,价格高 | | **Upload-Post** | 统一发布 API | 一个 POST 请求发布到 10+ 平台,提供 Python/Node SDK | | **蚁小二 / 易媒助手** | 中文自媒体矩阵 | 一键分发 18+ 平台,内置去重引擎、AI 改写 | --- ## Phase 4:筛选分类 —— 按平台、功能、质量分级 ### 4.1 按平台分类的数据源/工具 #### 微博 - 官方文档:微博开放平台 (open.weibo.com) - 接口:`statuses/update.json`, `statuses/share.json` - 限制:企业 100 条/日,个人 30 条/日 #### 微信公众号 - 官方文档:微信开放平台 (developers.weixin.qq.com) - 接口:`draft/add`, `freepublish/submit`, `media/uploadimg` - 限制:IP 白名单、群发次数限制 #### 抖音 - 官方文档:抖音开放平台 (open.douyin.com) - 接口:`video/upload/`, `video/create/` - 限制:仅对企业开放,日调用上限按权限等级划分 #### 小红书 - 无官方 API - 开源方案:`xiaohongshu-mcp`, `social-auto-upload` - 风险:平台严禁自动化,封号风险高 #### 视频号 - 无官方 API - 开源方案:`social-auto-upload` (tencent_uploader) - 风险:依赖前端 DOM,易失效 ### 4.2 按功能分类 | 功能域 | 推荐方案 | 质量等级 | |--------|---------|---------| | 短视频自动化上传 | `social-auto-upload` | A(中文社区最成熟) | | 长图文自动发布 | 微信公众号官方 API + `wechat-article-publisher-skill` | A | | 微博定时发布 | 微博官方 API | B(权限收紧) | | 小红书自动化 | `xiaohongshu-mcp` | B(无官方 API,风控高) | | 国际平台自动化 | `social-poster`, `social_post` | A/B | | 敏感词过滤 | DFA + Trie + Bloom Filter 自研 | A | | 状态追踪与重试 | 消息队列 + DB 状态机 | A | --- ## Phase 5:爬取数据 —— 关键文档清单 所有爬取的关键文档已存放于 `crawl/` 目录: 1. `crawl/weibo_api_spec.md` — 微博 API 规范(接口、参数、限制、示例) 2. `crawl/wechat_api_spec.md` — 微信公众号 API 规范(完整发布流程、字段限制) 3. `crawl/douyin_api_spec.md` — 抖音/视频号 API 与自动化方案(企业门槛、RPA 方案、风控红线) 4. `crawl/xiaohongshu_automation.md` — 小红书自动化规范(内容格式、AI 标识、严管政策) 5. `crawl/content_moderation_architecture.md` — 敏感词过滤与内容预审架构设计最佳实践 6. `crawl/open_source_tools_comparison.md` — 开源多平台自动化发布工具对比 --- ## Phase 6:洞察提取 —— 跨平台自动化发布系统设计 ### 6.1 架构设计原则 设计一个跨平台、可扩展的自动化发布系统,应遵循以下原则: 1. **Adapter 模式**:每个平台封装为独立的 `Publisher Adapter`,屏蔽 API 差异与 RPA 差异。 2. **Pipeline 模式**:内容从"提交 → 预审 → 适配 → 排队 → 发布 → 追踪"按流水线处理,各阶段解耦。 3. **State Machine**:每篇内容的每次平台发布都维护一个持久化状态机,确保崩溃可恢复、失败可重试。 4. **Configuration as Code**:平台的格式限制(标题长度、图片尺寸、发布时间窗口)以配置形式存储,便于快速响应平台规则变化。 ### 6.2 推荐系统架构 ``` ┌─────────────────────────────────────────────────────────────────────────────┐ │ Content Ingestion │ │ (User / AI Agent 提交原始内容:标题、正文、图片、视频、标签、目标平台) │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Content Pre-processing Service │ │ • 平台适配裁剪(标题、正文、图片尺寸、视频转码) │ │ • 去重处理(MD5 扰动、帧率调整、文案模板轮换) │ │ • AIGC 标识自动注入 │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Content Moderation Service │ │ • 规则引擎快筛(Trie/DFA 敏感词过滤,Bloom Filter 优化) │ │ • AI 模型精审(BERT 语义分析、NSFW 检测) │ │ • 分级处置:A级拦截 / B/C级人工复核 / D/E级通过 │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Publish Queue (MQ) │ │ • 按平台拆分队列(weibo_queue, wechat_queue, douyin_queue...) │ │ • 支持延迟队列(定时发布) │ │ • 支持死信队列(DLQ,超过最大重试次数进入人工排查) │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ Platform Adapters │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ Weibo API │ │ WeChat API │ │ Douyin API │ │ XHS RPA │ │ │ │ Adapter │ │ Adapter │ │ Adapter │ │ Adapter │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │ Video RPA │ │ TikTok API │ ... 更多平台可按统一接口扩展 │ │ │ Adapter │ │ Adapter │ │ │ └─────────────┘ └─────────────┘ │ └─────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────┐ │ State Tracking & Retry Engine │ │ • DB 持久化:post_id, platform, status, attempt_count, next_retry_at │ │ • 指数退避 + Jitter 重试策略 │ │ • 平台特异性错误码映射(401 永久失败 / 429 延迟重试 / 5xx 指数退避) │ └─────────────────────────────────────────────────────────────────────────────┘ ``` ### 6.3 核心数据模型设计 #### Post(内容主表) ```json { "post_id": "string", "title": "string", "content": "string", "media_urls": ["string"], "tags": ["string"], "is_aigc": true, "created_at": "datetime", "scheduled_at": "datetime|null" } ``` #### PublishTask(平台发布任务表) ```json { "task_id": "string", "post_id": "string", "platform": "weibo|wechat|douyin|xiaohongshu|video_channel", "status": "pending|queued|publishing|published|failed_retryable|failed_permanent|cancelled", "attempt_count": 0, "max_attempts": 5, "next_retry_at": "datetime|null", "platform_post_id": "string|null", "platform_url": "string|null", "last_error_code": "string|null", "last_error_message": "string|null", "created_at": "datetime", "updated_at": "datetime" } ``` #### PlatformConfig(平台配置表) ```json { "platform": "weibo", "adapter_type": "api|rpa", "title_max_length": 140, "content_max_length": 5000, "image_max_count": 18, "video_max_duration_sec": 900, "daily_publish_limit": 100, "allowed_media_types": ["image", "video"], "require_aigc_label": true, "active_hours": ["08:00-10:00", "20:00-22:00"] } ``` ### 6.4 发布状态机 ``` [PENDING] ──► [QUEUED] ──► [PUBLISHING] ──► [PUBLISHED] │ │ │ ▼ │ [FAILED_RETRYABLE] ──(after backoff)──► [QUEUED] │ │ │ ▼ (max attempts reached) │ [FAILED_PERMANENT] │ ▼ [CANCELLED] ``` ### 6.5 错误分类与重试策略 | HTTP/平台错误 | 分类 | 重试策略 | |--------------|------|---------| | 429 Too Many Requests | 可重试 | 读取 `Retry-After` 头部, exponential backoff | | 500/502/503/504 | 可重试 | exponential backoff + jitter,最多 5 次 | | 401 Unauthorized | 永久失败 | 立即停止,通知运营刷新 Token | | 400 Bad Request(参数非法) | 永久失败 | 立即停止,记录错误明细供人工排查 | | 平台特异性风控(如小红书封号) | 永久失败 | 转 DLQ,人工介入 | ### 6.6 关键原创洞察 #### 洞察 1:没有"银弹"API,混合架构是必然选择 目前五大平台中,只有微博和微信公众号拥有相对成熟且对个人/企业开放的发布 API;抖音仅限企业;小红书和视频号完全没有官方 API。因此,任何声称"全平台纯 API 对接"的方案都不现实。生产级系统必须采用 **"官方 API + 浏览器 RPA + 真机 RPA" 的混合 Adapter 架构**,并为每个 Adapter 配置独立的失败降级策略。 #### 洞察 2:风控比技术实现更难 2024-2025 年,各平台算法对"机器行为"的识别能力大幅提升。自动化发布系统的核心竞争壁垒不再是"能不能发出去",而是"发出去后会不会被限流/封号"。系统必须在 Pipeline 中内置 **内容去重引擎、行为节奏模拟器(随机延迟、错峰发布)、AIGC 标识注入器** 这三道防线。 #### 洞察 3:状态追踪是自动化发布的生命线 跨平台发布的最大复杂性在于"异步 + 失败 + 部分成功"。一篇内容可能在微博发布成功、在抖音因 429 进入重试、在小红书因账号风控永久失败。如果没有统一的 `PublishTask` 状态机和持久化存储,运营团队将无法在海量内容中定位问题。建议以 **数据库状态机为 Source of Truth,消息队列为执行引擎**,实现可观测、可恢复的发布流程。 #### 洞察 4:配置化是应对平台规则变化的唯一解 平台规则(标题长度、图片比例、AIGC 标识要求、日限条数)变化频繁。将这些限制硬编码在代码中会导致系统极度脆弱。最佳实践是将所有平台规则抽象为 **PlatformConfig 配置表**, Adapter 在运行期读取配置进行内容裁剪和校验,使规则变更无需发版即可生效。 #### 洞察 5:预审应当"快筛优先、AI 兜底、人工复核" 高并发场景下,假如每条内容都走大模型精审,成本和延迟都无法接受。生产级预审应采用 **"DFA/Trie 规则引擎快筛(<10ms)→ AI 模型中风险精审(~200ms)→ 高风险/模糊内容转人工"** 的三级漏斗,兼顾效率与准确率。 --- ## 附录:验收自查 - [x] knowhow_v1.md 覆盖 ≥80% 核心子问题(平台规范、预处理、状态追踪、异常处理) - [x] 包含跨平台自动化发布系统的原创架构设计与数据模型 - [x] crawl/ 目录包含 ≥5 个高质量爬取文件(实际 6 个) - [x] 所有数据均包含 source_url 引用 [RESULT: DONE]