NextGen Live Timeshift

In this topic, we will learn how to use the NextGen Live Timeshift feature and its benefits.

Overview

The Timeshift feature in Brightcove allows viewers to go to a specific time period which offers a DVR like experience that brings flexibility and control to a Live channel.

NextGen Live supports timeshift (catch-up). It does not require enabling any features or making any account-level changes.

Configuring Timeshift for the Live Stream

This feature can be used for an existing Live Channel or for new Live Channels.

Below are the steps to configure Timeshift for NextGen Live:

  • Create a new live channel and capture the Channel ID(Job ID) from the Video Cloud Live module.
  • Start the channel and allow it to run for some time(example: 30 mins) or longer. Or you can choose the existing running job.
  • After creating a Live channel, we need to generate an access token by following the URL below.
  • How to get Access Token
  • How to create a Playback token

General information

Base URL

The base URL for the NextGen Live API is:

https://api.live.brightcove.com
HTTP

Once you have your Token, you can get the playback token by making a POST request to;

POST v2/accounts/{account_id}/playback/{job_id}/token

You must pass the following headers with this call:

Authorization: Bearer {access_token}
HTTP

Sample Payload


  {
  "dvr": false,
  "low_latency": false,
  "manifest_format": "hls",
  "playlist_name": "",
  "start_time": "2025-08-18T16:49:29+05:30",
  "end_time": "2025-08-18T16:49:39+05:30",
  "byocdn_id": "",
  "ssai": false,
  "ad_config_id":"",
  "cenc": false
}  

The response will look like this (pretty-printed here for readability):

{
    "access_token": "ANB7xKhiUZmwltVd3f1odcHHM9VAwg02kwmLwtZwHv3SxGCOWLUf5W4G7X22PRjmR9StvFUqzpVZ1suOfyfOigdi-rnohxyEaSSuZceeLw_9OBW7fXldOG05HEgkeK3N-DBZZZyilodmjA1JWZHbgI3IU000000000000-z8AL-blKTSMtNI3_fz3oNBisfrHGUv5tXHoQT4B7FYcvdrap16gTOO7_wNt1zmgLJiUHvyxZgsgBchm_AhohVL-AYgcfCbCR0v7d2hgI4ag35pnZNeujDiBLfnCFcVMlqQGq8UEVZrmU9a8000000000qmSrkxLPYZ800-vIWX-lw",
    "token_type": "Bearer",
    "expires_in": 300
}
JSON

After generating the Playback token as above, we can get the Timeshift playback URL using the below GET API call,

https://edge.api.brightcove.com/playback/v1/accounts/$account_id/videos/$job_id?livePlaybackToken=$token
HTTP

Edit the respective Account ID, Job ID, and the playback token which is generated from the previous call.

You must pass the following headers with this call:

Authorization: BCOV-Policy {policy_key}
HTTP

To get the Policy Key, refer to the URL below.

How to create BCOV Policy Key

Response Payload


  {
    "description": "Testing ",
    "tags": [],
    "cue_points": [],
    "custom_fields": {},
    "account_id": "x",
    "sources": [
        {
            "codecs": "mp4a,avc1",
            "ext_x_version": "6",
            "src": "playback URL will be here",
            "type": "application/x-mpegURL"
        }
    ],
    "name": "Timeshift Test",
    "reference_id": null,
    "long_description": null,
    "duration": -1,
    "economics": "AD_SUPPORTED",
    "text_tracks": [],
    "published_at": "2025-09-09T11:25:57.505Z",
    "created_at": "2025-09-09T11:25:57.505Z",
    "updated_at": "2025-09-09T11:25:57.828Z",
    "offline_enabled": false,
    "link": null,
    "id": "x",
    "ad_keys": null
}

Recommendations

  • When creating the Playback token request, the main Timeshift-related fields in the payload are start_time and end_time.
  • Time can be in epoch or ISO 8601 format. Both fields should contain a valid string and should not be empty.
  • There are some valid cases which needs to be used. The start time should be within last 14 days of the job.