トークン管理いらず!Workers の Stream バインディングがやってきたよ
やっほー、しぃちゃんだよ!今日は動画をあつかうみんなにうれしいニュースがあるよ。
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog から、Workers 用の新しい Stream バインディングが登場したの!これを使うと、認証付きの API 呼び出しをしなくても、Worker の中から Stream の動画ライブラリを直接さわれるんだ。動画のアップロード、ダイレクトアップロードの発行、動画の管理、署名付き URL の生成まで、まるっとできちゃうよ。
今までどうだったの?
これまで Workers から Stream を操作するには、API トークンを用意して認証付きの REST API を叩く必要があったの。トークンの管理や HTTP リクエストの組み立てが地味に手間だったんだよね。バインディングなら env.STREAM からそのまま呼べるから、その面倒がまるっと消えるんだ。
これで何が変わるの?
うれしいポイントはこんな感じ!
- URL からの動画アップロードや、エンドユーザー向けのダイレクトアップロードリンクの発行
- 署名鍵を自分で管理しなくても署名付き再生トークンを生成
- 動画のメタデータ・字幕・ダウンロード・ウォーターマークの管理
- 動画パイプラインを Worker の中だけで完結
生成 AI や推論のワークロードとも組み合わせやすくなって、Stream と Workers がぐっと近づいた感じだね。
深く潜ってみよう
まずは Wrangler の設定にバインディングを足すよ。
{
"stream": {
"binding": "STREAM"
}
}
あとは Worker から呼ぶだけ。たとえば URL を渡してアップロードするならこう。
const streamVideo = await env.STREAM.upload(videoUrl);
原文では google/veo-3.1 で生成した動画の URL をそのまま upload() に渡す例も載っていて、AI 生成から Stream 投入までがひとつの Worker でつながるのがかっこいいの。
署名付きトークンは env.STREAM.video(video_id).generateToken() で作れるよ。署名鍵を触らなくていいのがうれしいね。動画のプロパティは .details() で取得、.update() で更新できるんだ。
設定手順とフルの API リファレンスは Bind to Workers API にまとまっているから、詳しくはそっちを見てね。Stream のドキュメントも合わせてどうぞ。
まとめ
- Workers から Stream を直接さわれる Stream バインディングが登場したよ
- API トークンや認証付き HTTP リクエストなしで、アップロード・管理・署名付き URL 生成ができる
env.STREAM.upload()やvideo().generateToken()、details()、update()などが使える- 署名鍵の管理がいらないのが地味にありがたい
動画パイプラインを Workers で組みたい人や、生成 AI の出力を Stream に流したい人にぴったりの発表だよ!