关于 storyclaw-x2c-publish
storyclaw-x2c-publish 是面向 X2C 平台的视频发布与数字资产管理技能,供发布者通过 X2C Open API 操作内容和钱包。它提供按步骤执行的发布流程,并支持查询项目与钱包交易。
主要功能
- 01获取分类及 S3 上传地址
- 02发布视频项目并查询审核状态
- 03为项目添加剧集和列出项目
- 04查询余额、申领及兑换 X2C
- 05提取 USDC 并查看交易记录
适用场景
- 01将本地视频上传并发布到 X2C
- 02使用外部视频 URL 发布内容
- 03查看项目审核进度或追加剧集
- 04管理 X2C 余额与 USDC 提取
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ storyclaw-official/ talenthub --skill storyclaw-x2c-publish安装后在 Claude Code 中输入/storyclaw-x2c-publish确认已加载。
附带文件.gitignorecredentials/example.json
详细介绍
X2C 发布 - 分发与钱包 API
将视频内容发布到 X2C 平台并管理数字资产。
重要规则
- 按顺序完成所有工作流步骤,绝不跳过步骤
- 始终为 curl 命令添加超时:
-m 60 - 绝不重试失败的请求——报告错误并询问用户
- 发布前检查项目状态,以避免重复
- 封面 URL 必须是图片(jpg/png/webp),绝不能是视频 URL
多用户支持
将 API 密钥存储在 credentials/{USER_ID}.json 中:
{
"x2cApiKey": "x2c_sk_xxx"
}
调用时设置 USER_ID 环境变量。OpenClaw 会根据聊天上下文自动传入该变量。
或者设置 X2C_API_KEY 环境变量,或在 ~/.openclaw/openclaw.json 中通过 skills."x2c-publish".env.X2C_API_KEY 进行配置。
分发工作流
1. distribution/categories → Get categories
2. distribution/upload-url → Get S3 presigned upload URLs
3. Upload files to S3 via HTTP PUT
4. distribution/publish → Submit with public_url from Step 3
5. distribution/query → Check review status
6. distribution/add-episodes → Add more episodes
7. distribution/list → List all projects
提供视频有两种方式:
- S3 上传 —— 本地文件使用 upload-url 工作流
- 外部 URL —— 发布时直接使用现有视频 URL
API 端点
所有请求都发送到 X2C Open API。基础 URL 通过 X2C_API_BASE_URL 环境变量配置,或默认使用生产环境端点。
请求头:
Content-Type: application/jsonX-API-Key: <your_x2c_api_key>
获取分类
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "distribution/categories", "lang": "zh-CN"}'
获取上传 URL
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{
"action": "distribution/upload-url",
"files": [
{"file_type": "cover", "file_name": "cover.jpg", "content_type": "image/jpeg"},
{"file_type": "video", "file_name": "ep1.mp4", "content_type": "video/mp4"}
]
}'
响应包含 upload_url、upload_headers 和 public_url。
上传到 S3
使用上一个响应中的 upload_url 和 upload_headers:
curl -X PUT "<upload_url>" \
-H "Content-Type: image/jpeg" \
<additional headers from upload_headers> \
--data-binary @cover.jpg
发布项目
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{
"action": "distribution/publish",
"title": "My Drama",
"description": "A story about...",
"category_id": "uuid",
"cover_url": "https://...",
"video_urls": ["https://..."],
"enable_prediction": false
}'
| 参数 | 必填 | 说明 |
|---|---|---|
| title | 是 | 项目名称(最多 100 个字符) |
| description | 是 | 剧情简介(最多 2000 个字符) |
| category_id | 是 | 分类 UUID |
| cover_url | 是 | 封面图片 URL |
| video_urls | 是 | 视频 URL 数组(1-10 个) |
| enable_prediction | 否 | 启用预测市场 |
查询状态
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "distribution/query", "project_id": "uuid"}'
状态值:draft、pending_review、approved、rejected
添加剧集
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{
"action": "distribution/add-episodes",
"project_id": "uuid",
"video_urls": ["https://..."]
}'
项目列表
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "distribution/list", "page": 1, "page_size": 20, "status": "approved"}'
钱包 API(资产管理)
获取余额
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "wallet/balance"}'
返回:credits、x2c_wallet_balance、x2c_pending_claim、x2c_pending_release、usdc_balance、wallet_address。
领取 X2C
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "wallet/claim-x2c", "amount": 50.0}'
将 X2C 兑换为 USDC
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "wallet/swap-x2c", "amount": 100.0}'
提取 USDC
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "wallet/withdraw-usdc", "amount": 10.0, "to_address": "SolanaAddress..."}'
交易历史
curl -m 60 -X POST "$X2C_API_BASE_URL" \
-H "Content-Type: application/json" \
-H "X-API-Key: $X2C_API_KEY" \
-d '{"action": "wallet/transactions", "page": 1, "page_size": 20, "type": "all"}'
类型:earnings(挖矿、分发、推荐等)、purchases(消费、兑换、提款等)或 all。