Multi-camera broadcast production with instant replay export capabilities via Cloudflare Stream.
| Method | Path | Summary |
|---|---|---|
POST | /broadcast/replay/export | Export replay clip |
{% api-endpoint method=“POST” path=“/broadcast/replay/export” /%}
Export an instant replay clip from a live broadcast camera
Operation ID: exportReplayClip
{% callout type=“info” title=“Cloudflare Stream” %} This endpoint uses Cloudflare Stream to create and process replay clips from live broadcast cameras. The clip is created asynchronously and a status URL is returned. {% /callout %}
Content-Type: application/json
| Required
| Field | Type | Required | Description |
|---|---|---|---|
cameraId | string | Yes | Camera ID from the broadcast production |
startTimeOffset | number | Yes | Start time in seconds ago (0-60) |
endTimeOffset | number | Yes | End time in seconds ago (0-60) |
duration | number | Yes | Clip duration in seconds (1-60) |
clipId | string | No | Custom clip identifier |
Replay export started
| Field | Type | Required | Description |
|---|---|---|---|
clipId | string | Yes | - |
status | string | Yes | Values: processing, ready, failed |
downloadUrl | string (uri) | No | Available when status is ready |
createdAt | string (date-time) | Yes | - |
Validation error (startTimeOffset must be >= endTimeOffset)
{% tabs %} {% tab label=“cURL” %}
curl -X POST 'https://api.wave.online/api/v1/broadcast/replay/export' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"cameraId": "cam_01",
"startTimeOffset": 30,
"endTimeOffset": 10,
"duration": 20
}'
{% /tab %} {% tab label=“TypeScript” %}
import { WaveClient } from "@wave/sdk";
const client = new WaveClient({ apiKey: "your-api-key" });
const clip = await client.broadcast.exportReplay({
cameraId: "cam_01",
startTimeOffset: 30,
endTimeOffset: 10,
duration: 20,
});
console.log(clip.clipId, clip.status);
{% /tab %} {% tab label=“Python” %}
from wave_sdk import WaveClient
client = WaveClient(api_key="your-api-key")
clip = client.broadcast.export_replay(
camera_id="cam_01",
start_time_offset=30,
end_time_offset=10,
duration=20
)
print(clip.clip_id, clip.status)
{% /tab %} {% /tabs %}