ブログ一覧
Matsuo Tatsuhiko

WebRTC の面倒を丸ごと肩代わり — Cloudflare RealtimeKit(ベータ)で自社アプリにビデオ会議を組み込んだ

本記事は公開時点(2026年08月13日)の情報です。AI関連のサービスや仕様は変化が速いため、最新の情報は各公式サイトをご確認ください。

自社プロダクトに「ビデオ会議」を組み込みたい、という要望は昔から定番で、そして昔から鬼門です。WebRTC を素で触ると、シグナリング、NAT 越え、SFU の運用、録画サーバー——本業とは関係ない仕事が山のように積み上がります。かといって Zoom の埋め込みでは自社の UI に馴染まない。

いま開発中の弊社プロダクトに会議機能が必要になり、Cloudflare RealtimeKit を使ってみました。結論から言うと、この面倒がほぼ丸ごと消えて驚いたのですが、ベータということもあり技術記事が日本語どころか英語でもほとんど見当たりません。実際に組み込んだ手触りを残しておきます。

RealtimeKit とは

Cloudflare が2025年4月に発表したリアルタイム音声・ビデオのツールキットです。ビデオ API 大手の一角だった Dyte のチームが Cloudflare に合流して作っており、下回りは Cloudflare の SFU / TURN(330以上の都市に分散する anycast ネットワーク)、上物は Dyte 由来の成熟した SDK 群という構成。発表時はクローズドベータでしたが、現在はダッシュボードの Realtime → Kit から誰でも使えます(執筆時点でベータ・無料)。

SDK は React / Angular / JavaScript(Web Components)/ React Native / Flutter / Kotlin / Swift と一通り揃っていて、UI 込みの「UI Kit」と、自前 UI を組むための「Core SDK」の2層に分かれています。

組み込みは本当に薄い

サーバー側は REST API を2回叩くだけです。ミーティングを作り、参加者を登録して認証トークンをもらう。

# 1. ミーティング作成
curl -X POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/meetings" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -d '{"title": "定例会議", "record_on_start": true}'

# 2. 参加者を追加(レスポンスの authToken をクライアントへ渡す)
curl -X POST ".../meetings/$MEETING_ID/participants" \
  -d '{"name": "松尾", "preset_name": "group_call_host", "custom_participant_id": "user-123"}'

クライアント側は、React なら @cloudflare/realtimekit-react@cloudflare/realtimekit-react-ui を入れて、トークンで初期化したミーティングを <RtkMeeting> に渡すだけ。これで画面共有・チャット・参加者一覧・デバイス設定まで付いた Zoom ライクな会議画面が丸ごと立ち上がります。正直、初日は拍子抜けしました。プリセット(ロールごとの権限・UI 設定のセット)でホストと参加者の見え方を分けられるので、「ホストだけ録画停止できる」のような制御もコード無しで済みます。

既定 UI は録画開始時に全員へトースト通知を出すなど、そのままだと少し主張が強い部分もあります。この辺はプリセットや UI Kit のカスタマイズで自社の流儀に合わせて削っていくことになります。

録画は「勝手に残る」

ミーティング作成時に record_on_start: true を渡すだけで、誰かが参加した瞬間から録画が始まります。仕組みとしては録画用の仮想ボットが会議に参加して合成映像(H.264 / VP8)を作り、Cloudflare R2 に保存する方式。1時間でだいたい 300MB、最大24時間です。録画・録音ファイルはダッシュボードから一覧・ダウンロードでき、ミーティングの履歴やセッションログも同じ場所で追えます。開発中のデバッグでずいぶん助けられました。

ひとつ重要な注意があって、RealtimeKit 側の保存は7日間で消えます。恒久保存したければ自前ストレージへの自動転送(storage_config)を設定しておく必要があります。転送先は自分の Cloudflare R2 のほか AWS S3 / Azure / GCS などに対応しています。エグレス無料の R2 バケットを指定すれば録画の保管から後段の処理まで Cloudflare 内で完結するので、特別な理由がなければ R2 が素直な選択だと思います。参加者ごとの音声を別トラック(WebM)で残すトラック録音もあり、文字起こしとの相性が良い機能です。

webhook で「会議が終わったら要約」まで組めた

会議系機能の本命はここだと思っています。RealtimeKit は meeting.endedrecording.statusUpdate などのイベントを署名付き(rtk-signature ヘッダー)の webhook で送ってくれるので、「録画がアップロードされたら取得して文字起こし、要約して議事録として保存」というパイプラインがサーバーレスで組めます。弊社でもこの方式で会議の自動要約を構築しました。

// Workers での受け口の骨格
async function handleEvent(event) {
  switch (event.event) {
    case "recording.statusUpdate":
      // UPLOADED になったら録画を取得して文字起こし・要約へ
      break;
    case "meeting.ended":
      // 会議レコードを閉じる
      break;
  }
}

面白いのは、いまやこの用途の半分が組み込み機能になっていることです。ミーティング作成時に transcribe_on_end: truesummarize_on_end: true を渡すと、会議後に Whisper Large v3 Turbo(Workers AI)で文字起こしし、要約まで自動生成して webhook で届けてくれます。リアルタイム字幕は Deepgram Nova-3 で、対応言語には日本語(ja)も入っています。要約のフォーマットや語数(150〜1000語)も指定でき、自前パイプラインは「要約の品質やプロンプトを完全に制御したい場合」の選択肢という位置づけになりそうです。

気になる料金をシミュレーションする

一番の懸念は料金です。ベータ中は全機能無料ですが、料金ページには GA 後の単価が既に公開されています。

項目 GA 後の単価
音声+ビデオ参加 $0.002 / 分 / 人
音声のみ参加 $0.0005 / 分 / 人
録画・RTMP・HLS エクスポート $0.01 / 分
音声のみ録音 $0.003 / 分
文字起こし・要約 Workers AI の従量課金

これを弊社の想定ユースケースに当てはめてみます(1ドル150円、実績ではなく机上の試算です)。

ケース 参加分数/月 参加費 録画費 月額合計
社内定例(8人×60分×週1) 1,920分 $3.84 240分 → $2.40 約$6.2(約940円)
オンライン相談窓口(2人×30分×6件/日×20日) 7,200分 $14.40 3,600分 → $36.00 約$50(約7,600円)

見ての通り、支配的なのは参加費ではなく録画費です。1時間の会議を録画すると、それだけで $0.60。全会議をフル録画する設計だと録画費が参加費の数倍になります。逆に「議事録用に音声だけ残す」なら $0.003/分と1/3以下なので、要約が目的なら音声トラック録音に寄せるのが賢そうです。とはいえ 2人×30分の商談が録画込みで約$0.42(63円)と考えると、会議室の電気代みたいな水準ではあります。実績ベースの請求データが取れたら追記します。

冷静な注意点

ベータであることの注意は素直に効いてきます。SLA はなく、仕様も料金も GA までに変わる可能性があります。録画の7日保持は忘れると事故になるので、本番投入するなら R2 等への転送設定が実質必須です。ドキュメントは整っていますが英語のみで、コミュニティの知見もまだ薄く、ハマったときに検索しても出てきません(だからこの記事を書いています)。また Dyte からの移行製品という経緯上、SDK の API 名やダッシュボードの画面は今後も整理が入りそうな気配があります。

「ビデオ会議つき業務システム」が現実的になった

これまで「会議機能が欲しい」と言われたら Zoom 連携か外部ビデオ API の高額な従量課金かの二択で、正直あまり勧めてきませんでした。RealtimeKit は組み込みの薄さ・録画から要約までの一気通貫・料金の水準感のどれをとっても、この選択肢の並びを変えてくると思います。先日の @cloudflare/computer の記事でも感じましたが、Cloudflare は「アプリの部品」を出すのが本当にうまくなってきました。

オンライン相談・遠隔検品・社内会議の自動議事録など、「ビデオ通話が入った業務システム」のご相談はAI・業務自動化の支援で承っています。