ミーティングの録画は、次の状態を取ります。
| 名前 | 説明 |
|---|---|
| INVOKED | RealtimeKit のバックエンドサーバーが録画リクエストを受け取り、マスターが準備済みのワーカーを探して録画ジョブを割り当てようとしています。 |
| RECORDING | ワーカーがミーティングを録画中です。ライブ配信中もこの状態になります。 |
| UPLOADING | 録画が停止し、ファイルをクラウドストレージへアップロードしています。ストレージ詳細を指定していない場合、ファイルは RealtimeKit のサーバーにのみアップロードされます。この段階で RTMP とライブ配信のリンクも停止します。 |
| UPLOADED | 録画ファイルのアップロードが完了し、ステータス webhook も発火します。 |
| ERRORED | 録画中に回復不能なエラーが発生し、ファイルは利用できません。 |
録画の状態を追跡したり、録画の詳細を確認したりする方法は 2 つあります。
RealtimeKit は、録画がライフサイクル中に状態遷移すると recording.statusUpdate webhook を送信します。通知を受け取るには、webhook の events 配列に recording.statusUpdate を追加します。
curl --request POST "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/realtime/kit/$APP_ID/webhooks" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"name": "Recording status webhook",
"url": "https://example.com/webhook",
"events": ["recording.statusUpdate"],
"enabled": true
}'webhook のペイロードには、現在の録画ステータス、録画のメタデータ、関連するミーティング情報が含まれます。ステータスが UPLOADED のとき、ペイロードにはアップロード済みファイルへアクセスするための downloadUrl、audioDownloadUrl、downloadUrlExpiry フィールドが含まれることがあります。
セットアップ、署名検証、リトライ動作、ペイロードの完全な例は RealtimeKit webhooks を参照してください。
次の API も使えます。
- List recordings: ミーティングに紐づく過去および進行中の録画をすべて取得します。
- Fetch active recording: ミーティングの進行中の録画をすべて取得します。
- Fetch details of a recording: 録画 ID を指定して特定の録画を取得します。