storyclaw-x2c-publish について
storyclaw-x2c-publishは、X2C Open APIを通じてX2Cプラットフォームへの動画公開とデジタル資産管理を行うスキルです。順序に沿った公開手順に加え、プロジェクトやウォレットの操作を扱います。
主な機能
- 01カテゴリとS3アップロードURLの取得
- 02プロジェクト公開と審査状況の確認
- 03エピソード追加とプロジェクト一覧
- 04残高確認、X2Cの請求と交換
- 05USDCの出金と取引履歴の確認
活用シーン
- 01ローカル動画をアップロードしてX2Cで公開
- 02外部動画URLを使ったコンテンツ公開
- 03審査状況の確認やエピソード追加
- 04X2C残高とUSDC出金の管理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ storyclaw-official/ talenthub --skill storyclaw-x2c-publishインストール後、Claude Code で/storyclaw-x2c-publishを入力して読み込まれたか確認します。
同梱ファイル.gitignorecredentials/example.json
詳細
X2C Publish - 配信&ウォレット API
動画コンテンツを X2C プラットフォームに公開し、デジタル資産を管理します。
重要なルール
- すべてのワークフロー手順を順番どおりに完了してください。手順を省略しないでください。
curlコマンドには必ずタイムアウトを追加してください:-m 60- 失敗したリクエストは絶対に再試行しないでください。エラーを報告し、ユーザーに確認してください。
- 重複を避けるため、公開前にプロジェクトのステータスを確認してください。
- カバー画像には画像(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
動画を指定する方法は 2 つあります。
- 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。