DVR Configuration
Restart TV lets viewers pause a live stream and seek back inside an available DVR window. The seekable range can come from Akta Cloud event metadata, or from a fixed time window configured in the player.
Restart TV requires Akta Cloud configuration before the player can expose DVR controls.
In Akta Cloud, configure DVR from Live Encoders > Edit Encoder > Settings tab > DVR or override it per event from Edit Event > Content Control > DVR. Events are created in Inherit mode by default. The event-level values are:
- Inherit - Uses the encoder DVR setting.
- Enabled - Enables DVR for the event, overriding the encoder.
- Disabled - Disables DVR for the event, overriding the encoder.
In Play Configuration > Edit > Private > Custom, add and keep this block:
dvr:
enabled: true
Restart TV does not require a separate play configuration. Restart TV is fully compatible only with server-side ads stitched by Akta.
To enable DVR handling in Lura Player, use the following configuration.
| Attribute | Type | Required | Description |
|---|---|---|---|
| enabled | Boolean | no | Enables DVR handling for live playback. |
| mode | LuraDVRMode | no | EVENT uses Akta event metadata. WINDOW uses a sliding lookback window ending at the current time. |
| availabilityWindow | Double | no | DVR window duration in seconds. Used when mode is WINDOW. |
Event mode
Use event mode when Akta Cloud provides the Restart TV window from event or encoder metadata.
val luraConfiguration = LuraConfiguration(
...
content = LuraContent(
type = LuraVideoType.LIVE,
dvr = LuraDVR(
enabled = true,
mode = LuraDVR.LuraDVRMode.EVENT
)
),
...
)
player.setConfig(luraConfiguration)
Window mode
Use window mode when the live stream should expose a fixed sliding DVR range.
val luraConfiguration = LuraConfiguration(
...
content = LuraContent(
type = LuraVideoType.LIVE,
dvr = LuraDVR(
enabled = true,
mode = LuraDVR.LuraDVRMode.WINDOW,
availabilityWindow = 7200.0
)
),
...
)
player.setConfig(luraConfiguration)
Start inside the DVR window
For Restart TV, startAt is a UNIX timestamp in seconds, not a relative offset. The timestamp must be inside the DVR availability window.
val luraConfiguration = LuraConfiguration(
...
content = LuraContent(
type = LuraVideoType.LIVE,
dvr = LuraDVR(
enabled = true,
mode = LuraDVR.LuraDVRMode.EVENT
),
startAt = 1710528000.0
),
...
)
player.setConfig(luraConfiguration)