Introducing Stream Bindings for Workers
2026年5月7日 | Stream
Workers向けの新しいBindingsを使用して、Stream動画ライブラリと対話できるようになりました。これにより、顧客はWorkerから認証されたAPIコールを行わずに、Streamにコンテンツをアップロードし、直接アップロードをプロビジョニングし、動画を管理し、署名付きURLを生成できます。StreamとWorkersをより密接に統合し、より多くのプログラマティックパイプライン、より緊密な統合、生成AIと推論ワークロードのサポートを実現できることに興奮しています。
Stream Bindingを使用する場合
Stream Bindingは以下の場合に使用してください:
- URLから動画をアップロードするか、エンドユーザー向けの基本的な直接アップロードリンクを作成する
- 署名キーを管理せずに署名付き再生トークンを生成する
- 動画メタデータ、キャプション、ダウンロード、ウォーターマークを管理する
- Workers内で完全に動画パイプラインを構築する
開始方法
Wrangler設定にStream Bindingを追加します:
wrangler.jsonc
{
"$schema": "./node_modules/wrangler/config-schema.json",
"stream": {
"binding": "STREAM"
}
}
wrangler.toml
[stream]
binding = "STREAM"
AIで動画を生成してStreamに直接アップロード
AIで動画を生成するか、既存のファイルのURLを送信します:
JavaScript
const aiResponse = await env.AI.run(
"google/veo-3.1",
{
prompt: "A dog walking next to a river",
duration: "10s",
aspect_ratio: "16:9",
resolution: "1080p",
generate_audio: true,
},
{
gateway: {
id: "experiments",
},
}
);
const videoUrl = aiResponse.result.video;
const streamVideo = await env.STREAM.upload(videoUrl);
TypeScript
const aiResponse = await env.AI.run(
'google/veo-3.1',
{
prompt: 'A dog walking next to a river',
duration: '10s',
aspect_ratio: '16:9',
resolution: '1080p',
generate_audio: true,
},
{
gateway: {
id: 'experiments',
},
}
);
const videoUrl = aiResponse.result.video;
const streamVideo = await env.STREAM.upload(videoUrl);
署名キーやAPIコールを使用せずに署名付きURLを生成
JavaScript
const video_id = "ce800be43a9772f4bb02f35b860fb516";
const token = await env.STREAM.video(video_id).generateToken();
const embedUrl = `https://customer-igynxd2rwhmuoxw8.cloudflarestream.com/${token}/iframe`;
TypeScript
const video_id = 'ce800be43a9772f4bb02f35b860fb516';
const token = await env.STREAM.video(video_id).generateToken();
const embedUrl = `https://customer-igynxd2rwhmuoxw8.cloudflarestream.com/${token}/iframe`;
動画プロパティを簡単に取得および設定
JavaScript
const video_id = "46c8b7f480d410840758c1cb14a72e47";
const result = await env.STREAM.video(video_id).details();
await env.STREAM.video(video_id).update({
meta: {
name: "sample video",
},
});
TypeScript
const video_id = '46c8b7f480d410840758c1cb14a72e47';
const result = await env.STREAM.video(video_id).details();
await env.STREAM.video(video_id).update({
meta: {
name: 'sample video',
},
});
詳細情報
セットアップ手順と完全なAPIリファレンスについては、Bind to Workers APIを参照してください。
Agentを使い始める
Cloudflare Stream(env.STREAM)のBindingを追加します。ウォッチページで、Stream Bindingを使用してIDに基づいて情報を取得し、video.meta.nameをページタイトルとして活用します。