VOD Rebroadcast (VOD2Live)

Schedule an existing VOD as a live channel with vod_rebroadcast on POST/PUT /v2/channel.

Rebroadcast an existing VOD as a scheduled live channel. There is no separate HTTP path: send a vod_rebroadcast object on the channel APIs.

📘

Host: https://developer.dacast.com. Headers: X-Api-Key and X-Format: default. JSON bodies need Content-Type: application/json.

Request object

vod_rebroadcast is an object (not an array):

FieldMeaning
idVOD id on the account. Use the short uuid from GET /v2/vod (for example 33ce2526-0e2f-44f4-8693-fa8c66ec78f6). Do not send root_user_id-vod-....
startUnix timestamp in seconds when playback should start. Must be at least 10 minutes from the API call. Do not send milliseconds.

Do not send timezone. start is absolute Unix time. You may send start as a number or a string; the API returns it as a string.

Create

curl -X POST "https://developer.dacast.com/v2/channel" \
  -H "X-Api-Key: insertYourApiKeyHere" \
  -H "X-Format: default" \
  -H "Content-Type: application/json" \
  -d "{\"title\":\"My VOD to Live\",\"vod_rebroadcast\":{\"id\":\"VOD_ID\",\"start\":START_UNIX}}"

Replace START_UNIX with floor(now) + 600 or later. A successful create returns 201 and echoes vod_rebroadcast.

This is not an encoder ingest channel. config.publishing_point_primary and config.stream_name are null. There is no RTMP/SRT/WHIP push.

Example 201 (abridged):

{
  "id": "aaea469f-c9cb-42d6-b4f1-e060b9cec786",
  "title": "My VOD to Live",
  "config": {
    "publishing_point_primary": null,
    "stream_name": null
  },
  "hls": "https://playlist.dacast.com/live/8f2facdc-1a29-5903-bffb-8414b3ee5da5-live-aaea469f-c9cb-42d6-b4f1-e060b9cec786/master.m3u8",
  "vod_rebroadcast": {
    "id": "33ce2526-0e2f-44f4-8693-fa8c66ec78f6",
    "start": "1787059311"
  }
}

Update

PUT /v2/channel/{id} with the same object reschedules the channel or points it at another VOD you own. A successful update returns 200. Send only the fields you want to change.

curl -X PUT "https://developer.dacast.com/v2/channel/{id}" \
  -H "X-Api-Key: insertYourApiKeyHere" \
  -H "X-Format: default" \
  -H "Content-Type: application/json" \
  -d "{\"vod_rebroadcast\":{\"id\":\"VOD_ID\",\"start\":START_UNIX}}"

Lookup and list

The create 201 includes vod_rebroadcast. GET /v2/channel/{id} returns the channel immediately, but vod_rebroadcast can still be {} for a short time. The channel list can lag the same way (up to about a minute). Retry until id and start are set.

Encoder ingest channels keep vod_rebroadcast: {}.

Validation

Create and update both return 422 (not a generic "Unknown error") when:

  • start is fewer than 10 minutes from now
  • start is in milliseconds instead of seconds
  • id is not a VOD on this account

Example when start is too soon:

{
  "error": "invalid input for vod2Live scheduling",
  "detail": "start time must be at least 10 minutes in the future"
}