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 | Bool | no | Enables DVR handling for live playback. |
| mode | DvrMode | 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.
let config = LuraPlayerConfiguration(
content: .init(
type: "live",
dvr: .init(
enabled: true,
mode: .event
)
)
)
player?.setConfig(config)
Window mode
Use window mode when the live stream should expose a fixed sliding DVR range.
let config = LuraPlayerConfiguration(
content: .init(
type: "live",
dvr: .init(
enabled: true,
mode: .window,
availabilityWindow: 7200
)
)
)
player?.setConfig(config)
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.
let config = LuraPlayerConfiguration(
content: .init(
type: "live",
startAt: 1710528000,
dvr: .init(
enabled: true,
mode: .event
)
)
)
player?.setConfig(config)