本番のURLと実際のコンテンツは意図的に非公開にしています。画面は実際のUIを、サンプルデータ(サンプルのサイト名とタイトル、自作のAI動画)を使ってローカルで動かしたものです。
Case 05 / 09
AI動画ストリーミングプラットフォーム
Cloudflare のエッジ上で完結する完全サーバーレスの動画ストリーミングサービス — AIによる10言語の自動翻訳と暗号資産でのサブスクリプション決済を、AIと1人で構築
2026.09 – 2026.10(約3週間、ファイル日付から算出 — gitなし) / 1人(AIをチームとして活用) / Web(サーバーレス)
- 課題
- 再生・サブスクリプション・多言語対応を備えたグローバルな動画ストリーミングを、サーバーなしで1人で運営できるか?
- 担当
- 企画 · 基準設定 · AIへの開発指示 · デプロイ
- 使用技術
- Cloudflare Workers · Hono · D1 · R2 · Workers Rate Limiting
成果
- Cloudflare Workers で稼働 — 管理すべきサーバーなし
- 稼働中
- Cloudflare Workers で稼働 — 管理すべきサーバーなし
- 多言語UIと、AIによる動画タイトルの自動翻訳
- 10言語
- 多言語UIと、AIによる動画タイトルの自動翻訳
- オンチェーンで検証するサブスクリプション決済
- 暗号資産
- オンチェーンで検証するサブスクリプション決済

- コード行数、DBマイグレーション39回、約70バージョン
- 約11,300
- コード行数、DBマイグレーション39回、約70バージョン
01
02
アイデア・課題
高速な再生、有料サブスクリプション、多言語対応を備えたグローバルな動画ストリーミングサービスを、サーバーを1台も運用せずに1人で回せるか? 目標は、すべてをエッジ(視聴者に近いネットワーク拠点)で完結させ、パッチ適用・スケーリング・死活監視の必要をなくすことでした。
03
企画と基準
- サーバーなし:コンピューティング、データベース、メディアストレージ、レート制限、AI翻訳をすべて Cloudflare 上で。
- 決済は信用せず検証する — サブスクリプションは、決済が独立に確認されてから有効化する。
- 手作業の翻訳なしで、動画タイトルを含め、すべての視聴者が自分の言語でサービスを利用できること。
04
AIへの指示プロセス
- 作業を配信・決済・多言語対応・セキュリティに分け、文書化したルールに沿ってAIにそれぞれを構築させた。
- バージョンごとに何を、なぜ変えたかをREADMEに記録し続けた — 約3週間で約70バージョン。
- 冪等なスクリプト1つでデプロイを自動化し、リリースをコマンド1つで行えるようにした。
05
成果
- Cloudflare Workers+D1(データベース)+R2(メディア)+Workers Rate Limiting+Workers AI で稼働中。
- 10言語対応、タイトルは Workers AI で自動翻訳。
- 暗号資産によるサブスクリプション:決済はブロックチェーンの記録と照合し、再利用を防止。プロバイダーのWebhookは署名を検証。1つのサブスクリプションにつき同時利用は1端末。
- オブジェクトストレージからのバイトレンジ動画配信とエッジキャッシュ。
- TypeScript 約11,300行、データベースマイグレーション39回。
06
振り返り
エッジのスタックによって、サーバー運用ゼロのまま1人でグローバルなサービスを立ち上げられました。次回は初日から、最初のデプロイ前にGitとテストを用意し、監視とバックアップをデプロイスクリプトに組み込みます。
その他の画面 · 6枚






実際のサービスUIを、サンプルデータを使ってローカルで動かして撮影しました。サイト名・タイトル・動画・ウォレットアドレスはすべてサンプルで、動画は私が制作したAI作品です。
(01) Review
Honest Review
開発者が作っていたら?
決済 — 信用せず検証する
暗号資産によるサブスクリプション決済は1件ずつブロックチェーンの記録と照合し、再利用できないようにしています。決済プロバイダーのWebhookは署名を検証。
セキュリティの基本 — 一貫して実装
厳格なCookieを用いた署名付き管理者セッション、ログインのロックアウト、セキュリティヘッダー、すべてのSQLクエリをパラメータ化(217箇所)、レート制限ルール6つ。
パフォーマンス — エッジ優先の動画配信
オブジェクトストレージからのバイトレンジ配信とエッジキャッシュにより、オリジンサーバーが不要。
スピードとドキュメント — 約3週間で70バージョン、すべての変更理由を記録
約11,300行、マイグレーション39回。651行のREADMEに各バージョンの変更理由を記録。日付はファイルのタイムスタンプに基づきます(gitなし、最小値)。
アーキテクチャ — 標準的な3層構成のWorkersアプリ
ドメインロジック/ビュー/ルーターを分離。大きなルートファイルが2つほど残っています。
リリースと運用 — コマンド1つでデプロイ
デプロイスクリプトがストレージ作成、マイグレーション実行、デプロイ、シークレット設定を冪等に実行 — 自動化済みですが、CIではありません。
多言語対応 — 10言語
10言語の辞書に加え、AIによるタイトルの自動翻訳。アクセシビリティは基本レベル。
テストとバージョン管理 — テストなし、gitなし
バックアップはバージョンごとのZIPファイルでした。
改善計画 → プライベートGitリポジトリ、その後決済検証のテストと、既存の型チェックも実行するCI。
コードの一貫性 — 2,000行規模のファイルが数個
500行を超えるファイルが5つ、型のない箇所が一部、一時ファイルの残り。
改善計画 → Gitへの移行に合わせて、ドメイン単位で分割・整理する。
監視 — 本番環境の可視性が低い
ログは最小限で、バックアップやロールバックの手順もありません。
改善計画 → エラートラッキング、DBの定期バックアップ、ロールバック手順をデプロイスクリプトに追加。
次のプロジェクト →
Money Navigation
海外での支払いのたびに旅行者が損をしないよう支援するアプリ — 複数のAIセッションを指揮し、48時間のハッカソンで完成
