概要
OpenComputerによるサーバーレスエージェントを活用した動画自動生成の仕組みを解説。 TypeScriptで記述されたエージェントと3つのツールで構成。 Anthropic Claude Opus 5.5モデルを使用し、HTMLページからMP4動画を生成。 各ジョブはAmazon Linux 2023のmicroVM上で独立実行。 生成動画はVercel Blobに保存され、API経由で管理。
OpenComputerによる動画生成プロセス
- OpenComputer 上で動作するサーバーレスエージェントによる動画生成システム
- TypeScript で定義されたエージェントファイル、3つの独自ツール、入力フォームから構成
- nvidia.com、 typesafe.ai、 opencomputer.dev、 linear.app などのページ例
- プロンプト例:「make a modern slick and punchy video for a modern startup that works on inference」
動作環境
- 各ジョブは Amazon Linux 2023 (arm64, 4 vCPU, 8GB RAM, Node 22) 上の新規microVMで実行
- PlaywrightのヘッドレスChromium と静的ffmpegを初回ツールコール時にインストール(約1分)
- ジョブ完了後、VMは破棄
モデルとトークン
- モデルは anthropic/claude-opus-5.5 を利用
- 1本の動画につき約 90k入力トークン、 15k出力トークン
- 主にHTMLデータが対象
ツール群
- web_fetch :ページテキスト、タイトル、見出し、主要な16進数カラー、Google Fontsの取得
- check_scene :動画読み込み、JSエラー検出、サンプルタイムスタンプでの可視テキスト抽出
- render_video :動画レンダリングとアップロード
レンダリング方式
- 動画モデルは未使用、HTMLページのクロック(requestAnimationFrame、timer、Date、CSS/WAAPI)を仮想クロックで制御
- 1920x1080/30fps、各フレームJPEGでlibx264にパイプ、crf 18でエンコード
ストレージとセキュリティ
- エージェントは シークレット未保持
- フォームから Vercel Blobアップロードトークン を発行(3時間有効、ジョブごとにパスを割当)
- 完成したMP4は パブリックBlob URL で提供
コントロールプレーン/API
- ページとCLIは同じAPIを使用
- セッション作成、ターン送信、イベントストリーム(tool.started, tool.completed, turn.completed)で進捗管理
- MP4がBlobに出現したら完了扱い
デプロイ方法
- npx opencomputer template deploy https://github.com/diggerhq/shipvideo で即時デプロイ可能
- Deedy によるOpus 5.5解説記事と動画から着想
- モデルが動画用コードを生成し、毎回同じ動画を再現
参考コード抜粋
import { useInput, useModel, useTool } from "@opencomputer/agent";
import { checkScene, renderVideo } from "./tools/scene.js";
import { webFetch } from "./tools/web.js";
export default function Agent() {
const input = useInput(); // フォームからのJOB情報
useModel("anthropic/claude-opus-5.5");
useTool(webFetch); // サイト情報取得
useTool(checkScene); // HTMLロード・エラー検出・可視テキスト抽出
useTool(renderVideo); // Chromium→ffmpeg→Blob
return `You are a motion designer who writes code. ...`;
}
特徴まとめ
- 完全自動化された動画生成パイプライン
- サーバーレス設計 でスケーラブルかつ管理負荷低減
- 毎回同じ入力なら同じ動画を生成 する再現性
- API/CLI/フォームで一貫した操作体験
- セキュリティとストレージの分離設計
多くの人と同じように、僕もLLMを使ったSaaSにハマってるんだけど、これって結局LLM呼び出しにボタンを追加してるだけじゃないの?本当の価値って何なんだろう?すぐにお金を稼いで、コピーが出るのを待つだけ?それとも、20年のSaaSとビジネス開発の経験があれば、他のSaaSよりも良いものが作れるのかな?