Skip to main content
Skip table of contents

User recordings (NPVR)

Overview

The User Recordings module (part of the NPVR service) enables the operator to allow end users client applications to request and manage recordings of live (broadcast) content and access them on different devices. These recordings are stored in the cloud.

Features

User functionality

A user can make a recording request for:

  • An event that has not yet happened
  • An event that has already started (the recording starts from the beginning of the event).
  • Part of an event that has already started (a partial recording starts from when the Record button was pressed). Currently for US market compliance only.
  • An event that has already been broadcast and that is still available in the short-term rolling buffer.
  • A series
Recording requests are synced with the EPG. If the airing time of an event changes, the recording request times are adjusted to suit.

Users can also:

  • Cancel a recording at any point in the process.
  • Delete a recording to free up space for more recordings.
  • Playback recorded content on any supported device.
  • Watch content recorded by a different profile within the same account.
  • Record multiple events that are being broadcast at the same time.
  • Bookmark recorded content so they can resume watching from where they left off.

Operator functionality

As an operator, you can:

  • Enable or disable recording on a per-channel and per-event basis, which allows you to comply with content agreements.
  • Manage subscriber access to NPVR. NPVR can be enabled/disabled per account.
  • Specify an expiry time for recordings, after which they will be purged. The asset lifecycle is fully automated and transparent.
  • Set guard times for the beginning and end of recordings to take account of possible schedule changes. (Note that the additional recording time does not affect the user's quota.)
  • Manage subscriber NPVR storage limits. You can define multiple quota profiles, each with a different quota, which you apply to subscriber accounts.

Record only once (shared copy) and private copy

User Recordings supports both shared copy and private copy:

Shared copy

In shared copy mode, only a single copy is stored of each recorded event.

  • If multiple profiles within an account record the same event, or a user requests recordings of the original event and again when the event is rebroadcast, only one copy is stored.
  • If an event is recorded via NVPR, only one copy is stored and it can be shared with LTCU (and vice versa).

Private copy

In private copy mode, a separate recording is made and stored for each user (account) that requests it.

  • For US market compliance, partial recording is only supported in private copy mode.
You decide which mode you want to use before OpenTV Platform is deployed. Currently it cannot be changed after deployment.

Partial recording (for US market compliance)

For the US market, support for partial recording (private copy only) is provided for live events that have already started.

Recording starts when the user presses the Record button and ends at event end + guardTimeEnd. The solution mimics real-time recording – the recording request to encoder (VOS 360) is still issued based on event end, i.e. after the event end + guardTimeEnd, and not at the moment the user presses the Record button. In the event of schedule changes, only event end date changes are considered.

Event metadata persistence

The NPVR service gets and stores event metadata from the Metadata Service (MDS). This allows it to provide rich metadata for the recorded events even when they are no longer available in MDS.

It stores metadata for all locales available for the content in MDS. This means that the client device can retrieve the correct metadata for the user's selected language.

If an event's metadata changes in MDS, the NPVR service immediately mirrors the changes.

Capture sharing modes

If you have chosen to use shared copy mode, at deploy time, you can choose the capture sharing mode to be used:

  • Content sharing – for multiple events that share the same content (for example, an event that is broadcast more than once), one recording is created that is shared by all users who requested it.
  • Event sharing – for each broadcast event, one recording is created that is shared by all users who requested it. If the same event is re-broadcast, it counts as a separate event and a separate recording is created for it.

The advantage of content sharing is that it uses less storage space. The advantage of event sharing is that the ads in the recorded content will be the ones that were actually broadcast, rather than whatever ads were in the first broadcast.

Note that with event sharing, the separate event recordings will have different expiry dates, as these are calculated from the broadcast date. With content sharing, there is only one recording with a single expiry date.

In either case, if one user deletes a recording, it does not affect other users' recordings. A recording is only deleted when the last user that recorded it deletes it (or the recording expires).

Recording lifecycle

Each recording request has one of the following statuses:

  • SCHEDULED – the request has been created, but the recording has not yet started.
  • RECORDING – the event is currently being recorded.
  • RECORDED – the event has been recorded successfully.
  • FAILED – the recording failed.

Recording prerequisites

For a particular user account to be able to record a specific event, in addition to NPVR being set up as explained below:

  1. The account's status must be ACTIVE in ADM.
  2. The user must have entitlements for the channel/event.

Setting up NPVR

Setting up NPVR consists of the following main steps:

  1. Configuring channels and events
  2. Configuring accounts and quotas
  3. Configuring guard times

These are explained in the following sections.

Configuring channels and events

  1. In OpCon, enable NPVR for a particular editorial channel at the global level and for all its technical channels. Also enable it for all new events. See  Replay TV.

    You can also set this at ingest or using CPM's editorialChannel, technical channel, and event APIs by setting the following:

    1. "networkPvrSupport" : "true" (for editorial channels, technical channels, and events)
    2. In technicalChannel > timeshifting > networkPvrParameters, set "validityDuration" to the required time.
    3. In editorialChannel > timeshifting > networkPvrParameters, "eventDefaultFlag" : "true"

  2. In OpCon, set the source ID for each technical channel to the ID of the rolling buffer stream for the channel.
    You can find this within the technical channel's URI field – it's the part in parentheses immediately before the final slash. For example, if the URI is:
    http://cdn-nagravision-01.secure.footprint.net/Content/DASH/Live/channel(c24a1dc9-6ac5-4a7f-90e7-db11e3f03509)/manifest.mpd
    ... then the source ID is c24a1dc9-6ac5-4a7f-90e7-db11e3f03509.
    You can also set this at ingest or using CPM's technical channel APIs by setting the following:
    1. In technical Channel > timeshifting > networkPvrParameters, set sourceId to the stream ID.

  3. Specify the IDs of the capture, validate, purge, and feature profiles for the technical channel. Use CPM's technical channel update API to add the IDs to the profileIdSet field.

    These profiles are configured by NAGRA. Contact your NAGRA representative to find out the IDs. You can use the BCM get profiles API to view these profiles.

    Feature profiles allow you to specify the types of device that a technical channel supports. For example, you could use a feature profile to specify that a 4K channel should not be available to low-powered mobile devices. To enable such a feature profile, please contact your NAGRA representative.

  4. For encrypted content:
    1. For each technical channel, specify the DRM system ID in securityDeviceId within securityInfo using CPM's technical channel update API. You can find the ID using the BCM devices API. (The DRM system is configured as a security device in BCM by NAGRA.)
    2. For each technical channel, specify the DRM system's identifier for the channel in the id field within securityInfo using the technical channel APIs. (You can query the encoder to get this ID for each packaging format.)
    3. If the technical channel is not already associated to a subscription product, associate it using CPM's ProductLinks API.
      To do this, send a PUT request to the following URL, with one or more validity periods in the payload:
        https://<server>:<port>/cpm/content/v1/productLinks/technicalChannel/{technicalChannelId}/product/{productId}


Tip: When updating a technical channel in CPM, you can save time by using a GET to get the whole channel, making the changes you need, and using it as the body in a PUT request.

But remove the id fields and the editorialChannelRef section from the body before submitting the request.


Configuring accounts and quotas

  1. Enable NPVR for all the applicable accounts. (For example, if you have three packages, bronze, silver, and gold, and NPVR is only part of silver and gold, you would enable NPVR for all silver and gold accounts.)
  2. Create one or more quota profiles. (For example, you may want to set up a small quota for subscribers to the silver package, and a larger quota for subscribers to the gold package.)
  3. Assign the appropriate quota profiles to all accounts for which NPVR is enabled. (For example, assign the small quota profile to silver accounts and the large one to gold accounts.)
  4. Grant entitlements for applicable accounts to the product that the channel is associated with using RMG's entitlements API. The productId that you specify here is the same as the ID of the product in step 4c, above.

Alternatively, you can enable NPVR and create and apply quota profiles in OpCon. See NPVR quotas and Account profiles.

Configuring guard times

Guard times are configured at the editorial channel level. You can configure an editorial channel's guard times in one of two ways:

  • At ingest, using the editorialChannel guardTime start and end fields (see the CPM APIs).
  • By using the Content and Product Manager (CPM) editorial channel APIs to update one or more channels.
These guard times are used for both user recordings and long-term catch-up (LTCU). It is not possible to set separate guard times for user recordings and LTCU.

Supported use cases

Client

Operator


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.