Node.jsでGoogle Veo2 APIを使って動画を生成してみた

2025年4月10日、Google Cloud Next 25の際に発表された時点で使えるようになっていたGoogleの動画生成AIである「Veo2」。OpenAIのSoraに対する対抗馬であり、Runway Gen-3Dream Machineの対抗馬でもあります。

このVeo2のAPIが既にもう使えるようになっていたので、Node.jsにてテキストから動画を生成してみました。

今回利用するツール等

今回はテキストから動画作成なので、画像から動画作成ではありませんが、APIでは画像からの動画生成にも対応しているようです。動画ですので画像の生成よりもプロンプトによる影響が大きいので、注意が必要です。OpenAIは現時点でSoraのAPI提供を考えていないようなので(ただし過去に流出騒動で存在自体はあるみたい)、Geminiがここは一歩先に出た感じですが、そのクオリティは如何に?

利用料金について

OpenAIではSoraをChatGPTで利用するにはChatGPT Plusに課金が必要です。月額2000円で1000クレジット分が使えるようで、その利用料金は以下のようになっています。

  • 720pの動画5秒で60クレジットを消費(1クレジット当たり単純計算で2円。)
  • 1000クレジットでおよそ16本/月の動画生成が可能
  • クレジットが枯渇すると追加課金しない限り翌月まで待たなければならない

一方、Veo2のAPI利用料金は結構お高いです。

  • 1秒あたり$0.35の料金(シンプルだけど高い。ドル円140円のレートだと、1秒当たり50円
  • 1回につき8秒の動画が生成されるので、400円も掛かる計算になる。
  • デフォルトのAPIリクエストだと2本生成されるので、1度に800円も消費する。
  • Soraと同じ5秒での金額計算では、250円/1本も掛かる計算になる

故に開発する際には、間違ってリクエストして生成出来たけどローカルにダウンロード失敗でも当然課金されるので、とんでもプライスになりかねません。今後安くなっていくとは思いますが、現時点では積極的に使える金額ではないなぁと思います(4本 vs 16本なので4倍高いという計算になる)。

図:あっという間に高額請求になります。

準備とコード

Vertex AIのMedia Studioで試せる

Google Cloudのコンソール内にあるMedia Studioで課金が必要ですが、プロンプトを使って生成することが可能です。画像をアップの方法がわからなかったですが、テキストからの動画生成は可能となっていて、右サイドパネルから細かい生成用の設定を行うことが可能です。

ただし、前述にもあるようにかなり高額なので、利用にあたっては十分な資金力と注意が必要になります。何度も気に食わないなぁと言って生成を繰り返しているととんでもないことになってしまいます。

Youtubeショートから既存のアップロード動画に対してVeo2の動画生成が出来るみたいですが、まだ日本は提供エリアに入っていなかったと思います。

図:Media Studioで作成

Google Veo-2 - The Best AI Video is Now Available to Everyone!

【新機能】動画作成ツール「YouTubeショートカメラ」の使い方

出力

今回の動画出力はリファレンスのデフォルトの指定のまま行っています。

  • 1280x720の720p出力で設定(アスペクト比としては16:9)
  • 1本あたり8秒でおよそ3MB程度のファイルサイズの動画が生成されます。
  • 生成に掛かる時間は1本当たり30秒未満で高速生成されます。
  • デフォルトだと2本生成されるので要注意。

といった感じです。GoogleスライドなどにGASで組み込んでリクエストし、直接スライドに動画を差し込むなんて使い方も出来ると思います。

事前準備

モジュールの追加

今回のコードはNode.jsでリクエストを投げますが、npmにてモジュールを1つ追加する必要があります。「Google Gen AI SDK for TypeScript and JavaScript」というモジュールを追加しておいてください。

Node.jsにて新規プロジェクトを作成したら、以下のコマンドを実行してモジュールを追加します。

また、APIキーも必要になるので、こちらのサイトからキーを生成しておいてください。APIキーは大切なものなので流出しないように細心の注意が必要です。できれば環境変数などに入れてprocess.envで呼び出して使うようにしましょう。

ソースコード

veo-2.0-generate-001が利用するモデル名になります。リクエストオプションを指定すると細かく制御できます。Operationのconfig内で指定します。

  • durationSecondsで生成する秒数指定(デフォルトが8秒)
  • aspectRatioで縦横比を指定(デフォルトは16:9)
  • sampleCountで生成する数を指定(デフォルトは2のようです)

Cloud Storageに保存も指定できますがデフォルトだとBase64にエンコードされたものが返ってくるようです。このコードではindex.jsのコードと同じフォルダ内にvideo0.mp4といった形でダウンロードして生成させています。

ReadableStream is lockedというエラー対策の為にReadableStreamには1個ずつ接続するように、stream.pipelineを使って制御を加えています(エラーになってもとりあえず出力はされますが)。

Google Apps ScriptでGeminiを叩いてスライドを生成する【GAS】

生成してみた動画

いちごの開花の様子のタイムラプスと、猫の昼寝の様子をそれぞれ8秒間、4本作成したものを作りました。かなりハイレベルだと思います。自分もイチゴは栽培していますが、細部に渡ってよく出来てるなと感じます。

Google Veo2 APIでテキストから動画を作ってみた

関連リンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)