3行でいうと

  • エージェント連携の中心は、スキル(npx skills add shengshu-ai/vidu-skills)と、vidu-cli、環境変数 VIDU_TOKEN の3点セットです。公式サイトのVidu Agentのページが、Claude CodeとOpenClawを名指ししています。
  • 連携を使うと、プロンプトと、手元の画像・動画・音声、作業の設定がViduのサーバーに送られます。READMEが、送ってよい内容かを確かめるよう書いています。
  • 自分のプログラムからは、API(https://api.vidu.com/ent/v2/ 以下)を Authorization: Token {your api key} で呼び、結果は24時間有効のURLで受け取ります。完成の通知は callback_url で受けられますが、署名の確かめ方の文書は読めませんでした。
  • MCP(外部の道具につなぐ規格)の連携は、読んだ範囲の公式の資料には見つかりませんでした。無いとは断定しません。
  • スキルの外し方、トークンの取り消し方は、読んだ範囲では記載が見つかりませんでした。

この記事は、公式の資料を2026年10月25日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。

先に結論

前提:用語をそろえる

連携の地図

連携 相手 設定する場所 公式の記述 外し方
A. Vidu Skills Claude Code、Cursor、Copilotなど「40以上」 npx skills add の実行、環境変数 vidu-skills README、Vidu Agentのページ 記載が見つからない
B. Vidu Skills(OpenClaw系) OpenClaw clawhub install の実行 vidu-skills README 記載が見つからない
C. Vidu Agent Vidu内のエージェント 設定なし(Viduにログイン) Vidu Agentのページ ―
D. vidu-cli 自分のスクリプト・エージェント npm、環境変数 vidu-cli README 記載が見つからない
E. API 自分のプログラム APIキー、HTTPリクエスト API文書 キーの取り消しは記載が見つからない
F. コールバック 自分の受け口 リクエストの callback_url API文書 リクエストで指定をやめる
G. S2サンプル 自分のWebアプリ .env、Nodeのサンプル vidu-s1-api README 「Hang up」で通話を終える
H. Dify Dify ― 使い方は読めていない ―

連携A:Claude Code(などのエージェント)× Vidu Skills

何ができるか(vidu-skills READMEの表)

テキストから画像・動画、画像から動画、最初と最後の絵から動画、参照から画像・動画、口パク、音声合成(READMEの表は「300+ voices, 20+ languages」。parameters.md は「250+ voices」)、複数トラックの動画編集(Video Compose)、参照の作成と検索、クレジット残高の確認、費用の見積り。

エージェントがこのスキルを使う場面は、SKILL.mdが「テキストから画像・動画…口パク、音声合成、動画の編集、参照の作成、Viduのタスクの投入と確認」と書いています(要約)。SKILL.mdの版は1.4.15と読めました(2026-10-25に読んだ時点)。

設定する場所とやること(公式の手順を順に)

  1. スキルを入れる。 vidu-skillsのREADMEのコマンドです。READMEは、この方法を「recommended」と書いています。
npx skills add shengshu-ai/vidu-skills
  1. vidu-cliを入れる。 READMEの流れでは、スキルの次です(05の段階5)。Nodeの版は、vidu-skillsのREADMEが「14以上」、vidu-cliのREADMEには記載なしと、資料で違います(05の段階5の表)。
npm install -g vidu-cli@latest
  1. 環境変数を設定する。 海外向けの値にした、この記事で組んだ例です(05の段階6。READMEの例そのままではありません)。
export VIDU_TOKEN=your_token
export VIDU_BASE_URL=https://service.vidu.com
  1. エージェントに頼む。 Vidu Agentのページは、スキルがOpenClawやClaude Codeに組み込まれたら、チャットで自然な文章で頼む、と書いています。ページの例は「Viduで、ネオンの街を走るサイバーパンクの車の動画を作って」という趣旨の1文です。

この記事の例(公式の文ではありません): 「Viduで、雨上がりの商店街を歩く猫の5秒の動画を作って。縦長で、1080pで。」

  1. 何が起きるか(SKILL.mdの記載)。 エージェントは vidu-cli を使って依頼を出し、返ってきた task_id で状態を確かめ、成功したら保存先を決めて取り出します。

スキルがエージェントに課しているルール(SKILL.mdの記載の要約)

渡るデータ(READMEの「Data Usage and Privacy」の要約)

渡るもの READMEの記載
テキストのプロンプト Vidu APIに送られる
手元の画像・動画・音声(入力に使うもの) Viduのサーバーにアップロードされる
作業の設定(モデル版、長さ、解像度など) APIに送られる

READMEは、さらに次を書いています。送る内容がプライバシーと知的財産の要件に合うか確かめる。できれば権限の小さいトークンを作る。最初の試しには本番用や強い権限のトークンを使わない。規約は、海外は vidu.com/terms、中国本土は vidu.cn/terms を読む。

VIDU_DEBUG=1 を付けると、返ってきた中身の全文が標準エラーに出ます(README)。ログを共有するときは、何が入るかに気をつけてください。

権限

外し方

うまくいかないときの確認点

症状 確認点
エージェントがスキルを使わない スキルの入れ方を確かめる。SKILL.mdには、画像・動画・音声・口パクなど、使う場面の一覧がある(上記)。頼む文に「Vidu」と入れてみる(この記事の案)
VIDU_TOKEN がない旨のエラー エージェントが動いているターミナルで環境変数が設定されているか。エージェントを起動したあとに設定した変数は、読み込まれない場合がある(一般的な動き)
認証が通らない VIDU_BASE_URL が地域に合っているか(海外は service.vidu.com)
ClawPassExplicitModeRequired 上の「権限」の節。クレジットを使うかを自分で決める
submit succeeded but no task_id found 出力を確かめ、最初の結果が分かるまで再投入しない(errors_and_retry.md)
動画が取り出せない task get に保存先を付けているか。状態が success でないと取り出しは省かれ、download_skipped: true が返る(vidu-cli README)

連携B:OpenClaw系 × Vidu Skills

vidu-skillsのREADMEは、OpenClawの仲間の仕組み(ClawHub)向けの入れ方を別に書いています。

clawhub install github:shengshu-ai/vidu-skills

連携C:Vidu Agent(Viduの中で動くエージェント)

Vidu Agentのページが書いていることです。

連携D:vidu-cliを自分のスクリプトやエージェントから直接使う

vidu-cliのREADMEが、コマンド全体を書いています。主なものを並べます。

やりたいこと コマンド(vidu-cliのREADMEの記載。崩れて読めた行は原文で確認)
画像をアップロードして使い回す vidu-cli upload ./photo.jpg(ssupload:?id=xxx の形の参照が返る)
依頼を出す vidu-cli task submit --type <TYPE> --prompt <PROMPT> --duration <DURATION> ...(vidu-cliのREADMEのひな形はこの形で始まる。parameters.md は --model-version と --resolution も必須と書く。2つの資料で違うため、原文で確認)
状態を見て取り出す vidu-cli task get <TASK_ID> [--output <DIR>]
音声合成 vidu-cli task tts --prompt "..." --voice-id <ID>
口パク vidu-cli task lip-sync --video ./clip.mp4 --audio ./speech.mp3
複数トラックの動画の合成 vidu-cli task compose --timeline <json>(この行は、今回の再確認では出どころを確かめられていません。原文で確認)
参照を作る vidu-cli element create --name "mychar" --image ./char.jpg
費用の見積り vidu-cli task cost ...、vidu-cli task tts-cost ...、vidu-cli task lip-sync-cost ...
残りを調べる vidu-cli quota credit、vidu-cli quota pass

渡るデータ

連携Aと同じです。ローカルのファイルをアップロードします。画像が10MBを超えると、自動で圧縮される、と parameters.md にあります。

連携E:API(自分のプログラム)× Vidu

設定する場所

何を呼べるか(読めたもの)

種類 呼び出し先 モデル
画像から動画 POST /ent/v2/img2video viduq4-preview
参照から動画 POST /ent/v2/reference2video viduq4-preview
画像生成 POST /ent/v2/reference2image viduq2(viduq1 の記述は文書が崩れている)
効果音 POST /ent/v2/timing2audio audio1.0
結果の取得 GET /ent/v2/tasks/{id}/creations ―

文書のナビゲーションには、ほかに声のクローン、音声合成、スマートアップスケール、被写体の作成、口パク、デジタルヒューマン、動画の延長、プロンプトの提案、ストリーミング(S2 Avatar、S2 Editing)が並んでいますが、本文は読めていません。

流れ

  1. 依頼を出す(06の場面8)。
  2. task_id を保存する。
  3. GET .../tasks/{id}/creations で、state を確かめる。状態は created、queueing、processing、success、failed。
  4. success になったら、creations[].url(24時間有効)からダウンロードする。
  5. err_code が空でないときは、文書の「エラーコード表」を見る(取得できず)。

渡るデータと、残るデータ

権限・外し方

Claude Codeなどから、このAPIを使う場合(この記事の案)

公式の資料に、ClaudeがこのAPIを直接呼ぶ設定の記載はありません。エージェントに任せる場合は連携Aが、公式が用意する道筋です。エージェントにAPIのcurlを書かせる場合は、「キーをチャットに貼らない、環境変数から読む」の形にするのが、この記事の案です。

連携F:コールバック(完成の通知)

API文書(動画、画像、効果音のページ共通)に書かれていることです。

設定

  1. 依頼のJSONに callback_url(自分が受け取れるURL)を入れる。
  2. 状態が変わるたびに、ViduがそのURLにPOSTする。本文は、結果の取得(GET .../creations)の返り値と同じ構造。
  3. 状態は processing、success、failed。success と failed の配送に失敗すると、Viduは3回まで再試行する。
  4. 通知は署名されている。確かめる方法は、文書の「Callback Signature」のページに書かれているはずですが、リンク先は「Document not found」で読めませんでした。画像生成と参照から動画のページでは、このリンクが別のドメイン(.cn)を指している、とも読めます。

渡るデータ

自分の受け口に、タスクの状態、credits、creations のURL、payload が届きます。受け口のURLは、Viduのサーバーから届く場所に置く必要があります。僕らの見立て(公式の説明ではありません)として、通知が本当にViduからのものかを確かめる署名の確認は大事な部分ですが、方式の文書が読めていないので、ここでは書きません。

外し方

リクエストで callback_url を指定しなければ、通知は来ません。設定済みのタスクの通知を止める方法は、記載が見つからない。

連携G:Vidu S2(リアルタイムのアバター、映像編集)のサンプル

vidu-s1-apiのREADME(About欄は「S1」、本文はS2)の内容です。

前提

Node.js 20以上、ChromeまたはEdge、ViduのAPIキー、マイク(動画モードではカメラも)。

手順

  1. リポジトリの最上位で、環境変数のひな形をコピーします。
cp .env.example .env
  1. .env に次を書きます(READMEの表)。
変数 例 注意
VIDU_API_KEY vda_your_api_key_here 自分のAPIキー
VIDU_HOST api.vidu.com(海外)または api.vidu.cn(中国) キーの地域と合わせる
NODE_QUICKSTART_PORT (任意) 既定の8787を変える
  1. サンプルのフォルダに入り、起動します。
cd examples/node-quickstart
npm install
npm run dev
  1. ブラウザで http://localhost:8787 を開き、「Avatar」か「Editing」を選び、「Create and connect」を押します。
  2. マイク(カメラ)の許可を出します。終わるときは「Hang up」を押します。

渡るデータ

エージェント用スキルとして使う場合

READMEは、skills/vidu-s-api を自分のエージェントのスキル用フォルダに入れ、SKILL.mdを読み込ませる、と書いています。対象のエージェント名は書かれていません。スキルは、セッションの作成、RTCの組み込み、WebSocketの初期化、セッション中の操作、後片付けを扱う、とのことです。

外し方

通話は「Hang up」で終わります。ローカルのサンプルを止める・消す手順はREADMEに書かれていません。

連携H:Dify

vidu-s1-apiのリポジトリ直下に plugins/dify/ というフォルダと、vidu_s1-0.0.3.difypkg というファイルがあります。READMEの本文にDifyでの導入手順は読めませんでした。ほかに、shengshu-aiの組織にはDifyの公開プラグインを集めたフォークがあると、03で書きました。Viduの機能をDifyから呼ぶ手順は、公式の資料では確認できていません。

AI同士の組み合わせ

「公式の記述あり」は、上で読んだ資料に書かれているもの、「この記事の案」は、資料にはないもの(動作は確かめていません)です。

組み合わせ 流れ 区分
Claude Code × Vidu チャットで頼む → スキルがvidu-cliを動かす → 動画を保存 公式の記述あり(連携A)
Claude Code × Vidu(音声と口パク) 文章を音声にする(task tts)→ 動画に口パクを付ける(task lip-sync)→ 合成(task compose) 各コマンドは公式の記述あり。この順に並べた流れは、この記事の案
OpenClaw × Vidu clawhub install でスキルを入れて頼む 公式の記述あり(連携B)
Vidu Agent(Viduの中) 目標を伝えると、構成から動画まで 公式の記述あり(連携C)
自分のプログラム × Vidu APIで依頼 → コールバックで通知 → 24時間以内にダウンロード 公式の記述あり(連携E、F)
別のAIで文章を整える × Vidu 別のAIで、5つの要素に沿ったプロンプトを作る → ViduのWebに貼る この記事の案。公式の連携ではない
Vidu → 別のAI Viduの結果URL(24時間有効)からファイルを取り、別のAIに渡す この記事の案

別のAIで文章を整える案の例(この記事の例)

別のAIに、次のように頼む想定です。公式の文ではありません。

「次の場面を、Subject、Action、Camera、Scene、Styleの5つに分けて、動きは1つに絞った日本語のプロンプトにしてください。場面:雨上がりの夕方、赤いレインコートの女の子が水たまりを飛び越える。」

返ってきた文を、06の場面1の手順でViduの入力欄に貼ります。このとき、貼る内容がViduのサーバーに送られることは、通常の使い方と同じです。

外し方のまとめ

連携 公式に記載があること 記載が見つからないこと
スキル ― 削除の手順、置き場所
vidu-cli ― 削除の手順
トークン Webの「Vidu Token」で取る 取り消し・再発行、権限を絞る方法
APIキー S1サンプルのREADMEにキーの取得先のアドレス 取り消し・再発行、権限範囲
コールバック リクエストで callback_url を指定 設定済みの通知の停止方法
S2サンプル 「Hang up」で通話終了 サンプルの削除
Webのアカウント 登録メールの変更は未対応(ヘルプ) アカウントの削除(04を参照)

気をつけること

出典