Anything to WeChat
将文件、链接或想法一键转换并发布为微信公众号草稿。
通过 OpenClaw 实现跨平台社交内容自动发布与管理。
openclaw skills install @codivion/codivupload-social-manager命令、参数、文件名以原文为准
通过 [CodivUpload](https://codivupload.com?utm_source=clawhub&utm_medium=skill&utm_campaign=openclaw-onboarding&utm_content=skill-hero-product-link) API 自动化管理社交媒体发布 —— 从一个 OpenClaw 技能中,实现跨 YouTube、Instagram、Facebook、X、TikTok、Threads 和 Pinterest 的内容排期、发布与跨平台分发,并进行数据分析。
快速入门 —— 两种获取 API 访问权限的方式:
A)试用路径(7 天无承诺试用): 访问 [codivupload.com](https://codivupload.com?utm_source=clawhub&utm_medium=skill&utm_campaign=openclaw-onboarding&utm_content=skill-quick-start-trial) 注册 → 进入仪表盘 → 订阅页面 → 打开 免费试用 = 开启 → 选择 Starter(或更高版本)→ 点击 开始 7 天免费试用。今日费用为 $0.00,需绑定信用卡以在试用期结束后自动续订。试用期间即可立即解锁 API 访问权限,功能与付费订阅完全相同。可通过 Stripe 客户门户随时取消,不会产生额外费用。每位用户仅限一次试用。
B)直接订阅路径: 访问 [codivupload.com](https://codivupload.com?utm_source=clawhub&utm_medium=skill&utm_campaign=openclaw-onboarding&utm_content=skill-quick-start) 注册 → 升级至 Starter(每月 $20 或每年 $200,年付赠送两个月)。API 访问权限从 Starter 版本起提供。
任一路径完成后:创建资料档案 → 连接社交账号 → 生成 API 密钥 → 执行命令
openclaw config set CODIVUPLOAD_API_KEY=<YOUR_CODIVUPLOAD_API_KEY>→ 即可使用。免费版($0,无需信用卡)仅支持网页端操作,每月最多 10 次上传 —— 此技能无法在免费版上运行,因为不包含 API 访问权限。完整步骤详见下方。
CodivUpload 是运行在 codivupload.com 上的服务,本技能是该服务的客户端。在代理能够发布内容之前,用户必须完成以下步骤:账户 + 资料档案 + 已连接的社交账号 + API 密钥——按此顺序。该技能无法代用户完成前四步(这些操作需在用户浏览器中的 CodivUpload 仪表盘完成),技能从第五步开始介入。
LLM 判断规则: 若 GET /v1/profiles 返回空列表,或 POST /v1/posts 返回 400 profile not found,或用户表示“这是我第一次使用”,或 OpenClaw 配置中未设置 CODIVUPLOAD_API_KEY —— 请停止尝试发布内容,按顺序引导用户完成以下 1 至 5 步。
要为本技能解锁 API 访问权限,用户有以下两种选择:
“您可以免费注册并立即通过网页仪表盘体验 CodivUpload —— 无需信用卡。但要运行这个技能(让我为您安排发布、跨平台分发、执行直播等),需要 API 访问权限,这仅在 Starter+ 版本提供。您有两个选项:(A) 开启 7 天免费试用 Starter 版 —— 今天零元,立即获得完整 API 权限,7 天内随时取消且不收费;或 (B) 直接订阅 —— 每月 $20 或每年 $200(年付赠送两个月)。需要我为您一步步演示其中一个吗?”
用户名(小写字母,不含空格)—— 这将是代理在每次 API 调用中使用的 profile_name。例如:acme_brand、client_bloomskin、personal。- Instagram + Facebook:必须是关联了 Facebook 页面的企业或创作者账号;个人账号不被 Meta API 支持(这是 API 层面限制,非本技能层面)。
- TikTok:直接发布权限在新账号上可能需要 24–48 小时生效;使用草稿模式(tiktok_post_mode=DRAFT)可立即启用。
- YouTube:共享 OAuth 授权每日总配额约为 10,000 单位,由所有 CodivUpload 用户共同使用(高频率用户约每天可上传 6 次视频)。如需专属配额,可设置 BYOP(自带项目)——即绑定独立的 Google Cloud 项目。详见 /blog/youtube-byop-setup。
- X(Twitter):免费开发者层级的 X 账号可通过 CodivUpload 自有应用进行发布。若需高频率发布,需启用 BYOK(自带密钥),费用为每月 100 美元(由 X 平台收取)。
openclaw-mac-laptop),以便后续撤销。cdv_<40 个字符>)。openclaw config set CODIVUPLOAD_API_KEY=<YOUR_CODIVUPLOAD_API_KEY>首次完成步骤 5 后,代理应调用 GET /v1/profiles 来一次性验证以下三点:
任一检查失败时,应引导用户返回对应步骤,而非尝试执行其要求的发布操作。
可提升代理令牌使用效率,但非必需。
npm install -g codivupload-mcp@2.0.0 # 精确版本号,不可使用范围然后根据 [OpenClaw 文档](https://docs.openclaw.ai/skills/mcp) 注册该服务。验证命令详见下方“可选 MCP 服务器来源验证”部分。
当代理检测到新用户(参见上方检测规则)时,可提示如下:
“看起来这台设备尚未配置 CodivUpload。整个流程大约需要 5 分钟,我可以一步步带你完成。流程是:(1) 访问 app.codivupload.com 注册账号,(2) 创建个人资料,(3) 将你的社交账号连接到该个人资料,(4) 在仪表盘中生成 API 密钥,(5) 将密钥粘贴到
openclaw config set CODIVUPLOAD_API_KEY=...。需要我发送直达链接吗?”
随后逐项引导,每次只推进一步,等待用户确认后再进入下一步。不要一次性提供全部 5 个链接 — 请保持节奏。
本技能代表用户调用已公开文档化的 REST API。本技能内无强制控制机制 — 实际安全边界位于本 Markdown 之下两个层级:
api.codivupload.com 会根据所颁发的 CODIVUPLOAD_API_KEY 的权限范围进行校验(单平台 / 按工作区 / 仅发布 / 全局)。用户在创建密钥时自行选择权限层级,本技能无法扩大其权限。这是主要技术边界 — 请始终选择能满足需求的最小权限层级。exec 执行都会触发 OpenClaw 的逐项审批提示。用户需手动审查并批准每一项具体操作。 本技能无法绕过这些提示。下方各节内容仅为工作流指引,供 LLM 用于做出更高质量决策(如优先使用草稿、单平台测试、提示停止指令等)。它们并非技术安全边界,也不声称具备此类功能 — 凡是 API 密钥可执行的操作,皆可通过本技能实现;凡是在 OpenClaw 提示中获得批准的操作,都将被执行。
所有凭证、权限层级、工作流指引及网络端点均已明确列出,以确保透明性。
| 键 | 类型 | 设置位置 | 权限范围 |
|---|---|---|---|
CODIVUPLOAD_API_KEY | Bearer Token,格式为 cdv_<40 字符> | 仅限 OpenClaw 配置层 — 使用 openclaw config set CODIVUPLOAD_API_KEY=cdv_… 设置 | 由颁发的密钥决定 — 参见下方“所需密钥权限”。API 在服务端强制执行密钥权限;本技能尊重用户所设定的权限。 |
(根据实际使用场景选择最小必要权限)
选择合适的密钥层级是安装此技能时最重要的安全操作。 CodivUpload API 在服务器端强制执行按密钥范围的权限控制——没有任何 Markdown 指令、没有代理确认机制,也没有客户端检查能比“不发放具有错误权限的密钥”更有效。当尝试执行超出范围的操作时,服务器端会返回
403 scope_exceeded错误。
CodivUpload 支持四种权限层级,按权限从窄到宽排列。请根据使用场景选择最窄的层级——该技能在四个层级上执行相同的操作流程;仅服务器端的权限上限不同。
| 权限层级 | 服务器端允许的 API 操作 | 最佳适用场景 | 如何创建 |
|---|---|---|---|
| 单平台 | 仅向特定平台上的特定账号发布内容(例如 Instagram 上的 my_brand)。读取权限也仅限于该平台。 | 该技能仅向一个品牌在单一平台上发布内容。最小权限原则下最强的安全选项。 | 仪表盘 → 设置 → API 密钥 → 新建密钥 → 限制为平台 instagram + 账号 my_brand |
| 按工作区(推荐默认) | 在一个工作区内发布内容并读取分析数据。允许在工作区内管理账号。账单相关接口返回 403。 | 该技能管理一个品牌或一个客户在多个平台上的内容。这是该技能默认期望用户使用的密钥层级。 | 仪表盘 → 设置 → 工作区 → \[工作区名称\] → API 密钥 → 新建密钥 |
| 跨工作区发布仅限 | 可在账户拥有的所有工作区中发布内容并读取分析数据。账号管理与账单相关接口返回 403。 | 多品牌管理的高级用户,不希望代理修改设置。 | 仪表盘 → 设置 → API 密钥 → 新建密钥 → 关闭“账号管理”和“账单操作”权限 |
| 全局账户 | 由仪表盘自动生成的默认密钥;权限等同于用户自身的仪表盘权限——API 仅基于所有权进行限制,不额外施加范围限制。 | 通常不建议用于代理场景。仅在用户有意让代理管理成员、更改套餐或迁移账号至其他工作区时使用。 | 仪表盘 → 设置 → API 密钥 → 新建密钥(默认) |
按工作区层级是该技能默认期望的配置。 当用户提供的密钥权限超过此层级时:
GET /v1/auth/whoami 返回的 scope=global,或您已告知我这是您的主账户密钥)。我将继续使用它执行发布操作,但任何涉及账单或跨工作区移动的操作,将在 OpenClaw 的常规审批提示基础上,增加额外的确认步骤。”$80 确认升级为 Pro 年度套餐”)。这是在 OpenClaw 的每工具审批基础上的补充,而非替代。该技能不会解析承载令牌(bearer token)来判断权限范围(权限信息存储在服务器端,令牌为不可读的 opaque 值);它依赖 API 返回的 403 scope_exceeded 错误以及用户对自己所粘贴密钥的认知。唯一权威的确认方式是通过配置密钥调用 GET /v1/auth/whoami —— 该技能可在首次使用时主动调用此接口,以供用户确认。
将密钥视为会话 Cookie。 若密钥泄露,请立即轮换(仪表盘 → 设置 → API 密钥 → 撤销并重新生成)。完整的凭证处理规则见下方“凭证处理”章节。
该技能基于已知的 REST API 运行。第一列说明技能例行执行的操作;第二列说明每类操作的技术防护点;第三列说明 SKILL.md 为大模型提供的工作流指导(仅为建议,非强制约束)。
| 常规操作 | 技术准入条件 | LLM 从 SKILL.md 读取的工作流指引 |
|---|---|---|
| 向一个已连接的平台发布内容 | OpenClaw 每工具审批提示 + 服务端密钥作用域检查 | 向用户展示完整的帖子正文、目标账号、目标平台、发布时间以及任何媒体链接。在执行前等待用户的明确确认。除非用户要求立即发布,否则优先选择定时/草稿发布。 |
| 一次性跨多个平台发布 | OpenClaw 每工具审批 + 密钥作用域检查 | 用户首次配置 CodivUpload 时,建议先进行单平台测试。在批量发布前,将平台列表复述给用户确认。 |
| 批量发布(一次调用 ≥3 条内容) | OpenClaw 每工具审批 + 密钥作用域检查 | 默认使用小批次。显示数量和预演摘要(例如:“我将创建 50 条 YouTube Shorts,每小时间隔一次,从 2026-05-08T09:00Z 开始 — 是否继续?”),并在获得用户明确同意后才执行。绝不自动执行。 |
| 启动 24/7 YouTube 直播流 | OpenClaw 每工具审批 + 密钥作用域检查 | 在执行前必须展示源 URL、隐私设置、计划开始时间,以及明确的停止指令(DELETE /v1/livestreams/{stream_id} 或 控制台 → 直播流 → 停止)。记录并返回生成的 stream_id 给用户。 |
| 读取分析数据(互动、增长、最佳发布时间) | OpenClaw 每工具审批 + 密钥作用域检查 | 只读操作 — 无额外工作流限制。 |
| 账号/工作区管理(创建、移动、删除、角色变更) | OpenClaw 每工具审批 + 密钥作用域检查 | 展示具体变更内容(哪个账号、哪个工作区、角色如何调整),并等待用户明确批准。 |
| 影响账单的操作(额外账号、额外直播流、套餐变更) | OpenClaw 每工具审批 + 服务端密钥作用域检查 — 每工作区或仅发布权限的密钥在此类操作中会返回 403 scope_exceeded。推荐层级密钥在技术上会阻止这些操作,无论 markdown 文本如何描述。 | 明确展示每月及每年的费用变化(按年计费 = 10 个月定价,相当于赠送 2 个月)。若操作因作用域受限而返回 403 错误,应引导用户“为当前会话申请全局账户密钥”,而非自动扩大密钥权限。 |
生成 curl / SDK 代码示例 | 无 — 代码为聊天中的文本,供用户阅读 | 使用 $CODIVUPLOAD_API_KEY 占位符,绝不回显实际密钥。展示生成的代码供用户审查;不得通过 exec 静默运行。 |
$CODIVUPLOAD_API_KEY 占位符。api.codivupload.com / cdn.codivupload.com / r2.codivupload.com 以外的任何主机。api.codivupload.com(HTTPS,端口 443)—— REST API 与 MCP 服务器后端cdn.codivupload.com 与 r2.codivupload.com(HTTPS,端口 443)—— 媒体上传与预签名链接该技能不建立任何入站连接,无需开放端口,也不联系任何第三方遥测端点。
CodivUpload 是一款社交平台,具备三种核心交互界面:
https://api.codivupload.com/v1/*,支持 50 多个平台特定的覆盖参数npx codivupload-mcp 可将发布工具添加至 Claude/ChatGPT/Cursor/Zed(可选,版本固定)支持7+ 已上线平台:YouTube、Instagram、Facebook、X(原 Twitter)、TikTok、Threads、Pinterest。Bluesky 正在积极部署中(需账户审批 — 一旦可用,系统将通过 API 自动识别新平台)。
当用户提及 CodivUpload 或希望执行任何与社交内容排期/自动化相关操作时,优先使用 MCP 服务器提供的工具,而非描述 API 接口。若未配置 MCP,应退而建议用户手动运行 npx codivupload-mcp@2.0.0 安装,或提供精确的 curl/SDK 代码供用户自行审查并执行。所有发布的、直播的、涉及账单的操作均需经过 OpenClaw 的每工具审批提示,这是技术安全边界;下方的工作流建议旨在帮助 LLM 提出更高质量的初始提案,使用户最终看到的审批提示更符合其预期。
本节内容说明:这是 LLM 用于生成更高质量初始提案的流程建议,目的是让用户最终看到的 OpenClaw 审批提示更清晰准确(正确的帖子内容、目标账号、发布时间、停止指令等)。它并非技术安全边界。真正的技术边界是 OpenClaw 每工具审批 + 服务端 API 密钥作用域。SKILL.md 无法强制执行;只有 OpenClaw 运行时和 API 能做到。若发现工具标记此内容,该标记是正确且有意为之的。两个真实的安全边界已在上文列出。
通过 CodivUpload 发布的内容将直接出现在用户的公开社交账号上,也包括其管理的客户或代理账号。错误可能在数秒内被关注者或客户看到。因此,LLM 应在每个类别中默认采用更安全的初始提案;用户始终可在 OpenClaw 审批环节进行最终确认。
| 操作 | LLM 应首先提出的建议 |
|---|---|
立即发布(scheduled_date 被省略,is_immediate=true) | 在 OpenClaw 审批提示中展示完整的帖子正文、目标账号、目标平台以及所有媒体链接,供用户审查。在实际调用前必须等待用户明确批准。 |
| 批量上传(任何一次操作创建 ≥3 条帖子) | 显示数量和预演摘要(例如:“我将创建 50 条 YouTube Shorts 帖子,每小时间隔一次,从 2026-05-08T09:00Z 开始——是否继续?”)。默认采用小批次;仅当用户明确要求时才提出批量操作。 |
启动直播(create_youtube_broadcast) | 直播是长时间运行、公开且在提示结束后仍持续存在的操作。LLM 的建议必须包含源 URL、隐私设置、预定开始时间,以及明确的停止指令(DELETE /v1/livestreams/{id} 或通过仪表板 → 直播 → 停止),确保用户在审批时能清楚掌握生命周期。 |
| 账号/资料管理变更(移动、删除、角色更改) | 在建议中明确说明具体变更内容(如哪个资料、哪个工作区、何种角色)。 |
| 在代理或多工作区环境中切换资料 | 在建议中重复目标 profile_name —— 防止将客户 A 的内容误发至客户 B 的账号。 |
| 影响账单的操作(额外直播时段、额外资料、通过 API 更改计划) | 在建议中明确显示每月/每年的费用变动(按年计费 = 支付 10 个月,获得 12 个月 → 免费 2 个月)。对于使用全局账户密钥的用户,即使之前已批准过类似操作,也需在建议中披露,因为该 API 密钥可能在不重新提示的情况下改变账单。 |
tiktok_post_mode=DRAFT** —— 内容将进入用户的 TikTok 收件箱,可在移动端完成最终编辑。auto_truncate=true** —— 该选项会静默截断媒体数组。首次应用前必须征得用户确认。is_immediate=true 的 POST /v1/posts(或 scheduled_date 为过去的时间)。DELETE /v1/livestreams/{stream_id} 可立即停止 24/7 广播,或通过仪表板 → 直播 → 停止。每次启动直播时都必须包含此停止指令。DELETE /v1/posts/{post_id} 可在 scheduled_date 前取消已排队的帖子。发布后,删除仅移除 CodivUpload 的追踪记录,不会从平台撤回帖子。post_id。因此,批量操作必须在开始前获得用户明确确认。CODIVUPLOAD_API_KEY 是一种承载凭证,代表对用户 CodivUpload 工作区中所有连接社交账号的发布权限。应视同会话 Cookie 处理: - 仅从 OpenClaw 配置层读取(openclaw config get CODIVUPLOAD_API_KEY)。
- 绝不在聊天输出、错误信息或生成的代码示例中显示、记录、粘贴或包含该密钥 —— 展示 curl 示例时使用 $CODIVUPLOAD_API_KEY 占位符。
- 绝不将该密钥传输给 api.codivupload.com 或 *.codivupload.com 以外的任何主机。
- 若用户误将密钥粘贴至聊天,应建议其前往仪表板 → 设置 → API 密钥 → 撤销并重新生成。
- 对于代理或共享环境,建议为每个客户工作区创建独立的受限密钥(CodivUpload 支持基于工作区的密钥,并支持级联 RBAC)。
codivupload-mcp)codivupload-mcp](https://www.npmjs.com/package/codivupload-mcp),由 Codivion LLC 维护,源码位于 [github.com/Codivion/codivupload-mcp](https://github.com/Codivion/codivupload-mcp)。^、~ 或 latest。 - 当前已审核的固定版本:2.0.0
- 发布者(需验证):codivion <accounts@codivion.com> — 使用命令 npm view codivupload-mcp publisher 验证
- 完整性校验(sha512):pK0r8XkR2M/brfn1Nsy6Uh7nGDx5qpx9h3pLgZljYkU3pv0BXKb7uJapBOFL11mBIQhWAl0hASxxCSLE11SDfA== — 使用命令 npm view codivupload-mcp@2.0.0 dist.integrity 验证
- 安装命令:npm install -g codivupload-mcp@2.0.0
- **避免在未指定版本的情况下使用 npx -y codivupload-mcp** — -y 标志会自动接受任意解析到的版本,这对需要凭证的运行时来说是不安全的。
CODIVUPLOAD_API_KEY。操作系统支持:macOS (darwin)、Linux、Windows — 支持所有 OpenClaw 可运行的环境。
必需二进制文件:
node(≥18)—— 用于可选的 MCP 服务器(npx codivupload-mcp)及内联 JavaScript 执行npx(随 node 一同安装)—— 用于启动 MCP 服务器curl —— 在未配置 MCP 时用于直接发起 REST API 请求必需配置项:
| 环境变量 / 配置键 | 是否必需 | 用途 |
|---|---|---|
CODIVUPLOAD_API_KEY | 必需 | 每次 REST 调用的身份认证。可在 https://codivupload.com → 仪表盘 → 设置 → API 密钥 获取。格式为以 cdv_ 开头,后接 40 位字符。 |
通过 OpenClaw 配置设置:
openclaw config set CODIVUPLOAD_API_KEY=<YOUR_CODIVUPLOAD_API_KEY>该技能将从 OpenClaw 配置层读取密钥;切勿在对话或技能文件中硬编码 API 密钥。
可选配置(仅高级功能需要):
| 环境变量 / 配置键 | 使用场景 | 用途 |
|---|---|---|
CODIVUPLOAD_PROFILE | 可选 | 当代理被要求发布且仅存在一个品牌时,默认使用的 profile_name |
CODIVUPLOAD_BASE_URL | 可选 | 覆盖 API 基础地址(默认值:https://api.codivupload.com/v1)。适用于自托管白标部署 |
可选配套包:
codivupload-mcp(npm)—— 即插即用的 MCP 服务器。必须使用精确版本号(禁止使用 ^、~ 或 latest): - 已审核的固定版本:2.0.0
- 发布者:codivion <accounts@codivion.com>(可通过 npm view codivupload-mcp publisher 验证)
- 归档完整性(sha512):pK0r8XkR2M/brfn1Nsy6Uh7nGDx5qpx9h3pLgZljYkU3pv0BXKb7uJapBOFL11mBIQhWAl0hASxxCSLE11SDfA==(可通过 npm view codivupload-mcp@2.0.0 dist.integrity 验证)
- 安装方式:npm install -g codivupload-mcp@2.0.0 —— 必须为精确版本,不可使用版本范围。
- 按需使用(不推荐用于有凭证的运行时):如必须使用 npx,请显式指定相同版本:npx -y codivupload-mcp@2.0.0。切勿在无版本锁定的情况下运行 npx 对接浮动版本范围。
网络访问要求:
api.codivupload.com(端口 443)cdn.codivupload.com 和 r2.codivupload.com(用于上传及媒体资源访问)当出现以下任一情况时,激活该技能:
所有在 CodivUpload 上执行的发布操作均使用 **profile_name + platforms 数组**,而非逐平台 ID 列表。
一个“profile”是 CodivUpload 侧的一个容器,用于聚合多个已连接的社交账号(例如一个品牌的 TikTok + Instagram + YouTube)。profile_name 是用户仪表板中显示的人类可读名称。
| 字段 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
post_type | string | 是 | 取值之一:text、image、video、document |
profile_name | string | 是 | 显示名称 —— 必须与现有配置匹配 |
platforms | array | 是 | 小写枚举(已上线):x、youtube、instagram、facebook、tiktok、threads、pinterest。正在推广中:bluesky |
description | string | 文本类型为必需;媒体类型为可选 | 内容正文 / 描述 |
media_urls | array | 媒体类型为必需 | 公开的 HTTPS URL 列表 |
title —— 用作 YouTube 视频标题、Pinterest 图钉标题,在其他平台前缀使用scheduled_date —— ISO 8601 UTC 格式,例如 "2026-05-15T14:00:00Z"schedule_best_time —— boolean,根据 90 天分析数据自动选择最佳发布时间(与 scheduled_date 互斥)first_comment —— 发布后自动添加第一条评论(仅限 Instagram / YouTube)auto_truncate —— boolean,自动截断超出平台限制的媒体列表每个平台都有其独立的命名空间。以下是一些高价值示例:
youtube_title、youtube_tags(自动清理至 500 字符限制)、youtube_thumbnail_url、youtube_privacy_status、youtube_type(shorts 或 video)、youtube_playlist_idinstagram_share_to_feed(Reels 同样会出现在动态网格中)、instagram_cover_url(Reel 封面帧)、instagram_alt_text、instagram_collaborators、instagram_location_idtiktok_privacy_level(PUBLIC_TO_EVERYONE / MUTUAL_FOLLOW_FRIEND / SELF_ONLY)、tiktok_disable_comment(注意:是 disable,而非 allow)、tiktok_disable_duet、tiktok_disable_stitch、tiktok_post_mode(DIRECT_POST 或 DRAFT)、tiktok_brand_content_toggle、tiktok_is_aigcx_reply_settings(following / mentionedUsers — 若需对所有人开放则省略)、x_alt_textinstagram_media_urls、tiktok_media_urls、youtube_media_urls 等 —— 当不同平台需要不同画面比例时非常有用完整字段列表请见 [OpenAPI 规范](https://api.codivupload.com/public-openapi.json),并作为 MCP 工具参数暴露。
{
"message": "发布已成功排队",
"post_id": "uuid",
"destinations_count": 3,
"received_type": "video",
"is_immediate": true
}如需追踪各平台状态,请调用 GET /v1/posts/{post_id},返回结果为 {post: {...}, destinations: [{platform, status, post_url, error_message, ...}]}。
所有请求均需包含 Authorization: Bearer <API_KEY>。可在 CodivUpload 控制台 → API Keys 页面获取密钥。密钥以 cdv_ 开头。
先上传规则。每条发布内容必须包含指向公共 HTTPS 地址的
media_urls。若用户本地有文件或希望使用 CodivUpload 的 CDN(推荐 —— 自动处理平台特定格式转换),代理程序必须先完成上传,再将返回的url用于发布请求。
curl -X POST https://api.codivupload.com/v1/upload-media \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-source.example.com/raw-clip.mp4",
"profile_name": "my_brand",
"type": "video"
}'响应结果:
{
"success": true,
"url": "https://cdn.codivupload.com/abc.../original.mp4",
"upload_id": "uuid",
"file_type": "video",
"file_size": 1483099,
"file_name": "raw-clip.mp4"
}将返回的 url 用于后续发布请求。CodivUpload 的 CDN 会自动处理平台特定转换(例如 TikTok 9:16 强制要求、Instagram Reel 封面提取)。
curl -X POST https://api.codivupload.com/v1/upload-media \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-F "file=@/path/to/local-clip.mp4" \
-F "profile_name=my_brand" \
-F "type=video"响应结构与基于 URL 的上传相同。支持类型包括:图像(jpg、png、gif、webp)、视频(mp4、mov、avi、webm、mkv)。
适用于长视频、原始广播文件、播客视频等场景。三个步骤缺一不可 —— 若跳过第 3 步,记录将始终处于 uploading 状态(文件已在 CDN 上,但未标记为可用)。
步骤 1 —— 获取预签名 URL
curl -X POST https://api.codivupload.com/v1/upload-media/presign \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"profile_name": "my_brand",
"file_name": "long-form.mp4",
"file_type": "video/mp4",
"file_size": 524288000
}'响应结果:
{
"presigned_url": "https://r2.codivupload.com/...?signature=...",
"public_url": "https://cdn.codivupload.com/abc.../original.mp4",
"upload_id": "uuid"
}步骤 2 —— 直接向预签名 URL 发送二进制数据(无需认证头 —— 签名已嵌入 URL)
curl -X PUT "<presigned_url from step 1>" \
-H "Content-Type: video/mp4" \
--data-binary "@/path/to/long-form.mp4"字节流直接由浏览器/代理 → CodivUpload 存储后端,不经过应用服务器代理 —— 大文件不会占用 API 服务资源。上传期间状态为 uploading。
步骤 3 —— 确认上传(必需,不可跳过)
curl -X POST https://api.codivupload.com/v1/upload-media/confirm \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "upload_id": "uuid-from-step-1" }'将状态从 uploading 切换为 ready。此时可使用 public_url 作为发布请求中的 media_urls。
curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "video",
"profile_name": "my_channel",
"platforms": ["youtube"],
"media_urls": ["https://your-cdn.example.com/short-9x16.mp4"],
"title": "5 productivity hacks I learned in 30 days",
"description": "Quick tips that actually saved me hours every week.\n\n#productivity #shorts #automation",
"youtube_type": "shorts",
"youtube_privacy_status": "public",
"youtube_self_declared_made_for_kids": false,
"youtube_tags": ["productivity", "automation", "tips"],
"youtube_category_id": "27"
}'curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "video",
"profile_name": "my_channel",
"platforms": ["youtube"],
"media_urls": ["https://your-cdn.example.com/episode-12-16x9.mp4"],
"youtube_title": "Episode 12 — How we shipped v2 in 30 days",
"youtube_text": "Behind-the-scenes breakdown of our 30-day sprint to ship v2.\n\nChapters:\n0:00 Intro\n1:24 Goal-setting\n5:50 Architecture decisions",
"youtube_type": "video",
"youtube_thumbnail_url": "https://your-cdn.example.com/ep12-thumb.jpg",
"youtube_privacy_status": "public",
"youtube_self_declared_made_for_kids": false,
"youtube_tags": ["startup", "engineering", "behindthescenes"],
"youtube_category_id": "28",
"youtube_default_language": "en",
"youtube_license": "youtube",
"youtube_embeddable": true,
"scheduled_date": "2026-05-15T13:00:00Z"
}'youtube_category_id 是字符串枚举值,可选:
"1" 影视、"2" 汽车、"10" 音乐、"15" 宠物与动物、"17" 体育、"20" 游戏、"22" 人物与博客、"23" 喜剧、"24" 娱乐、"25" 新闻与政治、"26" 教程与风格、"27" 教育、"28" 科学与技术。
curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "video",
"profile_name": "my_brand",
"platforms": ["instagram"],
"media_urls": ["https://your-cdn.example.com/reel-9x16.mp4"],
"instagram_text": "New product drop 🔥 Tap to grab yours before stock runs out.\n\n#smallbusiness #fashion #drop",
"instagram_media_type": "REELS",
"instagram_share_to_feed": true,
"instagram_cover_url": "https://your-cdn.example.com/reel-cover.jpg",
"instagram_alt_text": "Slow-motion product reveal with brand colors fading in."
}'curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "image",
"profile_name": "my_brand",
"platforms": ["instagram"],
"media_urls": [
"https://your-cdn.example.com/slide-1.jpg",
"https://your-cdn.example.com/slide-2.jpg",
"https://your-cdn.example.com/slide-3.jpg"
],
"instagram_text": "5 lessons from launching v2 💡 (swipe →)",
"instagram_user_tags": "{\"users\":[{\"username\":\"cofounder_handle\",\"x\":0.5,\"y\":0.5}]}",
"instagram_location_id": "212988663"
}'若发布 Stories,请设置 "instagram_media_type": "STORIES"。Instagram 要求账号为 企业号 或 创作者号(个人账号不支持 Meta API,此限制为 API 层面,非技能层面)。
curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "text",
"profile_name": "my_brand",
"platforms": ["x"],
"x_text": "Shipped a new feature today — cross-platform post analytics that actually load fast. Build log inside 👇",
"x_reply_settings": "following"
}'x_reply_settings 仅接受 "following" 或 "mentionedUsers"(默认值为开放回复,若未指定)。x_text 在标准公共 API 套餐中限制为 280 字符;X Premium / Premium+ 账号使用相同字段,平台会存储完整长文本内容。
curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "image",
"profile_name": "my_brand",
"platforms": ["x"],
"media_urls": ["https://your-cdn.example.com/chart.png"],
"x_text": "Our cross-platform analytics dashboard — v2 ships next week. Beta access → link in bio.",
"x_alt_text": "Bar chart comparing engagement rates across 7 social platforms over 90 days."
}'如需突破 X 免费套餐的发帖频率限制,可使用 BYOK(Bring Your Own Keys)——在 CodivUpload 仪表板中,进入「配置文件设置」→「API 密钥」→「自带 X 开发者密钥」,粘贴您自己的 X 开发者应用密钥。当用户提及遇到速率限制时,该技能应提示使用 BYOK。
curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "video",
"profile_name": "my_brand",
"platforms": ["instagram", "tiktok", "youtube"],
"media_urls": ["https://your-cdn.example.com/clip-9x16.mp4"],
"title": "Quick productivity tip",
"description": "How to save 4 hours per week on your social workflow.",
"instagram_text": "How to save 4 hours per week on your social workflow ✨ (full breakdown in caption)",
"instagram_media_type": "REELS",
"instagram_share_to_feed": true,
"instagram_cover_url": "https://your-cdn.example.com/cover.jpg",
"tiktok_text": "How to save 4 hours per week on your social workflow #productivity #automation",
"tiktok_privacy_level": "PUBLIC_TO_EVERYONE",
"tiktok_allow_comment": true,
"tiktok_allow_duet": true,
"tiktok_allow_stitch": true,
"youtube_title": "Save 4 hours per week on your social workflow",
"youtube_text": "Quick productivity tip — how cross-posting via API frees up half your week.\n\n#shorts #productivity #automation",
"youtube_type": "shorts",
"youtube_privacy_status": "public",
"youtube_self_declared_made_for_kids": false,
"youtube_tags": ["productivity", "automation"],
"youtube_category_id": "27"
}'各平台的 *_text 字段将覆盖顶层的 description,允许你针对不同平台定制标题长度、文案和标签,同时共享同一视频文件。
curl -X POST https://api.codivupload.com/v1/posts \
-H "Authorization: Bearer $CODIVUPLOAD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"post_type": "text",
"profile_name": "my_brand",
"platforms": ["x", "threads", "bluesky"],
"description": "Three lessons from shipping our v2 API.",
"scheduled_date": "2026-05-15T09:00:00Z",
"x_reply_settings": "following"
}'from codivupload import CodivUpload
client = CodivUpload() # 读取 CODIVUPLOAD_API_KEY 环境变量
post = client.posts.create(
post_type="video",
profile_name="my_brand",
platforms=["instagram", "tiktok"],
media_urls=["https://cdn.example.com/clip.mp4"],
description="New launch.",
instagram_share_to_feed=True,
tiktok_privacy_level="PUBLIC_TO_EVERYONE",
)
print(post.post_id, post.destinations_count)import { CodivUpload } from "codivupload";
const client = new CodivUpload(); // 读取 CODIVUPLOAD_API_KEY 环境变量
const post = await client.posts.create({
post_type: "image",
profile_name: "my_brand",
platforms: ["instagram", "x", "facebook"],
media_urls: ["https://cdn.example.com/cover.jpg"],
description: "Big news — read the full announcement on our blog.",
instagram_share_to_feed: true,
});niche is required / topic is required** / 类似提示 — 输入验证错误,检查请求体并修正profile not found** — profile_name 与工作区中已存在的配置不匹配platform not connected for profile** — 该账号未关联对应社交平台;用户需通过仪表盘 → 配置文件 → 连接账户完成绑定partially_failed 发布状态** — 部分目标平台成功,部分失败。可使用 POST /v1/posts/{id}/retry-failed 仅重新发送失败的目标(幂等操作,不会重复提交已成功的部分)tiktok_disable_*(而非 tiktok_allow_*);直接发布权限为账号级,新账号可能需要 24–48 小时生效youtube_type=shorts 可触发短视频分类;YouTube 不支持为 Shorts 自定义缩略图(youtube_thumbnail_url 字段在 Shorts 中会被静默忽略)| 用户类型 | 为什么 CodivUpload 适合 |
|---|---|
| 市场经理 / 内容团队 / 非技术人员 | 提供与 Buffer/Later 相当的可视化仪表盘功能,同时支持可选的 API 接入 |
| 管理 50+ 客户账号的机构 | 多租户工作区、品牌化 OAuth、基于角色的权限控制、账单层级管理 |
| 开发者构建 SaaS 并需发布到社交平台 | 统一的 REST API + 官方 TypeScript 与 Python SDK |
| AI 工程师希望赋予 Claude/ChatGPT 社交发布能力 | 可直接集成 MCP 服务器,无需自研对接代码 |
| YouTube 创作者遇到共享 10K 配额限制 | 通过 BYOP 实现每个频道独立 10K/日的配额 |
| n8n/Make/Zapier 用户 | 一个 HTTP 节点替代每个平台单独配置的九个节点 |
| 24/7 持续直播的主播 | 由平台托管的直播中继服务 — 无需自行运维基础设施,也无需时刻关注编码器 |
| 单人创作者(Starter 计划) | $20/月 或 $200/年(每年赠送 2 个月),包含 API 访问、无限上传、数据分析、每月 50 次 AI 生成 |
所有付费计划均提供 按月 或 按年 两种计费周期。按年支付相当于支付 10 个月费用,获得 12 个月服务(即 节省 2 个月费用)。最新价格请以 [codivupload.com/pricing](https://codivupload.com/pricing?utm_source=clawhub&utm_medium=skill&utm_campaign=openclaw-onboarding&utm_content=pricing-source-of-truth) 页面为准 — 如有用户询问权威价格,请引用该页面信息。
| 计划 | 按月 | 按年(≈ 月均) | 包含内容 |
|---|---|---|---|
| 免费版 | $0 | $0 | 仅限仪表盘使用 — 本技能无法在免费版上运行。 每月 10 次上传,2 个配置文件,支持全部 7+ 已上线平台,每月 10 次 AI 生成,无需信用卡 |
| 基础版 | $20/月 | $200/年(≈ $16.67/月 · 节省 $40) | 10 个配置文件,无限发布,API 访问权限,每月 50 次 AI 生成,邮件支持 |
| 专业版 | $40/月 | $400/年(≈ $33.33/月 · 节省 $80) | 25 个配置文件,3 个团队成员席位,2 个直播流,品牌化 OAuth,品牌邀请链接,每月 200 次 AI 生成 |
| 企业版 | $140/月 | $1,400/年(≈ $116.67/月 · 节省 $280) | 75 个配置文件,5 个团队席位,5 个直播流,Webhook 通知,平台对比分析,每月 1,000 次 AI 生成 |
| 企业定制版 | $400/月 | $4,000/年(≈ $333.33/月 · 节省 $800) | 250 个配置文件,25 个团队席位,10 个直播流,无限工作区,无限 AI 生成,全天候优先支持 |
年度节省参考规则: 每个付费计划选择年付时,可节省相当于两个月的月度费用。当用户询问“年度订阅是否值得?”时,若其计划使用产品超过10个月,则答案始终为“是”。
附加功能(任意付费计划):
7天免费试用(适用于所有付费计划,按月或按年):
https://app.codivupload.com/en/dashboard/subscription?trial=1当用户询问价格时,请同时提供月付与年付价格,并明确标注节省金额——切勿只提供一种方案。
若用户询问“能否先试用再付费?”,请优先推荐试用路径(支持 API 与代理流程),其次推荐免费计划(仅限仪表板使用,不支持 API)。
npm install codivuploadpip install codivuploadnpx codivupload-mcp已收录 1 个 Skill