Skip to main content
Skip table of contents

Network timeshifting

Summary

The NpvrLocker Product provides the following main features to SDP clients:

  • Storage of Recording Requests per user containing current EPG-related metadata.
  • Aggregation of per-user Recording Requests into per-event content capture requests.
  • Interfaces to provide CMS' WFM system with capture job details for initiating actual recording capturing requests with the various HE encoders, such as Harmonic and Envivio.
  • Per user storage quotas.
  • Integration with the MDS to retrieve the most current event metadata.
  • Integration with the SDP for authorisation of all client requests.

Data models

Recording Request data model

This is a JSON object with the following fields:

Name
Type
Description
Localised
Always available
_idStringInternal identifier for the object.NoYes
accountNumberStringThe account number requesting the recording.NoYes
availabilityEndDateDateThe availability end date of the recording request.NoYes
availabilityStartDateDateThe availability start date of the recording request.NoYes
channelIdStringThe main channel ID of the event.NoYes
contentIdStringThe metadata content identifier.NoYes
createdDateThe date that the recording request was created.NoYes
deviceTypeArray of stringsThe device types supported by this recording request for example, ios or stb.NoYes
durationLongThe duration of the content.NoYes
isprotectedBooleanA flag to indicate whether the recording request can be deleted fully. This field should be set to true if DELETE should not be allowed and to false if it should.NoYes
modifiedDateThe date that the recording request was modified.NoYes
programmeIdStringThe programme ID of the event to be recorded. Maps to the programme.id in MDS.NoYes
programmeMetaDataMapThe programme metadata, sourced from the MDS. This can be applied when the recording request is created with a POST, but will be overwritten when the programme moves to RECORDING state with the latest copy from MDS.NoYes
seriesIdStringThe metadata series identifier.NoYes
serviceProviderPublicIdStringThe Service Provider name.NoYes
statusStringThe status of the recording request.NoYes
uriStringThe URI of the recording request.NoYes
workflowVersionIntegerThe workflow version corresponding to the nPVR capability.NoYes

Example

CODE
{
    "accountNumber": "910-5754255",
    "programmeId": "6033_531",
    "created": 1394127591406,
    "modified": 1394127591406,
    "status": "NEW",
    "uri": "http://127.0.0.1:7777/api/npvrlocker/v1/recordingrequests/KBRO/5318b2f8e4b00c4a6e839f01"
}

21 reads

Series Recording Request data model

This is a JSON object with the following fields:

Name
Type
Description
Localised
Always available
_idStringThe internal identifier for the object.NoYes
accountNumberStringThe account number requesting the recording.NoYes
channelIdStringThe main channel ID of the event.NoYes
contentIdStringThe metadata content identifier.NoYes
createdDateThe date that the recording request was created.NoYes
modifiedDateThe date that the recording request was modified.NoYes
seriesIdStringThe metadata series identifier.NoYes
seriesMetaDataMapThe series metadata, sourced from the MDS.NoYes
serviceProviderPublicIdStringThe Service Provider name.NoYes
statusStringThe status of the recording request.NoYes

Example

CODE
{
    "accountNumber": "910-5754255",
    "programmeId": "6033_70x",
    "created": 1394127591406,
    "modified": 1394127591406,
    "status": "NEW",
    "uri": "http://127.0.0.1:7777/api/npvrlocker/v1/recordingrequests/KBRO/5318b2f8e4b00c4a6e839f01",
    "seriesId": "CDNPS624201",
    "contentId": "SCONT6242_006"
}

18 reads

Use cases

Record a broadcast event using network PVR

Example:

CODE
POST http://server:port/api/npvrlocker/v1/recordingrequests/CMS4X
Content-Type: application/json
 
    {
        "accountNumber": "910-5754255",
        "programmeId": "6033_531",
        "created": 1394127591406,
        "modified": 1394127591406,
        "status": "NEW",
        "uri": "http://127.0.0.1:7777/api/npvrlocker/v1/recordingrequests/KBRO/5318b2f8e4b00c4a6e839f01"
      }

Record a broadcast series using network PVR

POST /api/npvrlocker/v1/recordingrequests/{serviceProviderPublicId}

Example:

CODE
POST http://server:port/api/npvrlocker/v1/recordingrequests/CMS4X?seriesLinking=true"
Content-Type: application/json
     {
        "accountNumber": "910-5754255",
        "programmeId": "6033_70x",
        "created": 1394127591406,
        "modified": 1394127591406,
        "status": "NEW",
        "uri": "http://127.0.0.1:7777/api/npvrlocker/v1/recordingrequests/KBRO/5318b2f8e4b00c4a6e839f01",
        "seriesId": "CDNPS624201",
        "contentId": "SCONT6242_006"
      }

Retrieve a list of NPVR recordings

GET /api/npvrlocker/v1/seriesrecording/{serviceProviderPublicId}

Example:

CODE
GET http://server:port/api/npvrlocker/v1/recordingrequests/CMS4X?sort={'seriesId':1}&filter={status: {'$in': ['NEW', 'RECORDING']}} 

Retrieve a specific NPVR recording

Example:

CODE
GET http://server:port/api/npvrlocker/v1/seriesrecording/CMS4X/543fb80200b090525021fb1a

Update a NPVR event recording

Protect a recording

Example:

CODE
PUT http://server:port/api/npvrlocker/v1/recordingrequests/CMS4X/programme/123/protection/true

Unprotect a recording

Example:

CODE
PUT http://server:port/api/npvrlocker/v1/recordingrequests/CMS4X/programme/123/protection/false

Delete a NPVR event recording

Example:

CODE
DELETE http://server:port/api/npvrlocker/v1/recordingrecordings/CMS4X/543fb80200b090525021fb1a

Retrieve the quota usage

Example:

CODE
GET http://server:port/api/npvrlocker/v1/quotausage/{serviceProviderPublicId}&filter={status:'RECORDING'}")

See also

The full LKR API documentation.

JavaScript errors detected

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

If this problem persists, please contact our support.