# トークン管理いらず！Workers の Stream バインディングがやってきたよ

やっほー、しぃちゃんだよ！今日は動画をあつかうみんなにうれしいニュースがあるよ。

## なにが発表されたの？

Cloudflare の Changelog から、Workers 用の新しい Stream バインディングが登場したの！これを使うと、認証付きの API 呼び出しをしなくても、Worker の中から Stream の動画ライブラリを直接さわれるんだ。動画のアップロード、ダイレクトアップロードの発行、動画の管理、署名付き URL の生成まで、まるっとできちゃうよ。

## 今までどうだったの？

これまで Workers から Stream を操作するには、API トークンを用意して認証付きの REST API を叩く必要があったの。トークンの管理や HTTP リクエストの組み立てが地味に手間だったんだよね。バインディングなら `env.STREAM` からそのまま呼べるから、その面倒がまるっと消えるんだ。

## これで何が変わるの？

うれしいポイントはこんな感じ！

- URL からの動画アップロードや、エンドユーザー向けのダイレクトアップロードリンクの発行
- 署名鍵を自分で管理しなくても署名付き再生トークンを生成
- 動画のメタデータ・字幕・ダウンロード・ウォーターマークの管理
- 動画パイプラインを Worker の中だけで完結

生成 AI や推論のワークロードとも組み合わせやすくなって、Stream と Workers がぐっと近づいた感じだね。

## 深く潜ってみよう

まずは Wrangler の設定にバインディングを足すよ。

```jsonc
{
  "stream": {
    "binding": "STREAM"
  }
}
```

あとは Worker から呼ぶだけ。たとえば URL を渡してアップロードするならこう。

```js
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](https://developers.cloudflare.com/stream/manage-video-library/bindings/) にまとまっているから、詳しくはそっちを見てね。[Stream](https://developers.cloudflare.com/stream/) のドキュメントも合わせてどうぞ。

## まとめ

- Workers から Stream を直接さわれる Stream バインディングが登場したよ
- API トークンや認証付き HTTP リクエストなしで、アップロード・管理・署名付き URL 生成ができる
- `env.STREAM.upload()` や `video().generateToken()`、`details()`、`update()` などが使える
- 署名鍵の管理がいらないのが地味にありがたい

動画パイプラインを Workers で組みたい人や、生成 AI の出力を Stream に流したい人にぴったりの発表だよ！
