NextGen Live Timeshift
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:
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:
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):
After generating the Playback token as above, we can get the Timeshift playback URL using the below GET API call,
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:
To get the Policy Key, refer to the URL below.
How to create BCOV Policy KeyResponse 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.
Valid Cases
The following are valid scenarios when using Timeshift in NextGen Live. These ensure smooth playback and predictable results.
- Start time within the last 14 days: You can only choose a
start_timewithin 14 days of the current live channel. - Start time before end time: The
start_timemust always be earlier than theend_time. - Duration limit: The difference between
end_timeandstart_timemust be less than or equal to 24 hours. - Only start time provided: When only a
start_timeis defined, playback behaves like a live stream that allows viewers to scrub back to the definedstart_time. This is useful for live sports or news events. The URL expires once the playback window exceeds 24 hours. - Start time and end time in the future: If both times are set in the future, playback will begin only when the
start_timebecomes less than or equal to the current time. Playback automatically transitions through these states:- No playback
- Live event playback
- VOD playback (available for 14 days)