Static URL Delivery

In this topic, you will learn how to use static URLs from the Brightcove Playback API.

Introduction

Brightcove provides static URLs to video manifest files for assets in your Video Cloud library. This gives you the flexibility to manage your content in your own CMS, and deliver it using a custom security schema.

This is important for customers who have existing architecture that does not allow a Playback API call before needing the manifest url(s). The player can also use this feature, reducing playback start time by eliminating one call.

Also see the Playback API Reference.

Requirements

The following requirements are needed for static URLs:

  • Brightcove Playback API (2.0.0)
  • Your assets are ingested for Dynamic Delivery

Analytics registration

With static URLs, you are integrating with the Playback API without using the Brightcove Player. While the Brightcove Player automatically sends analytics data to Brightcove, you will use the Data Collection API to do this.

If you are not familiar with the Data Collection API, review the Overview: Data Collection API document.

For details about sending information to the Data Collector, see the Data Collection API Sample.

Video Cloud

Today, every playback through VideoCloud requires 2 API calls to start video playback. With the use of static URLs, you can reduce the number of API calls to just one.

The following diagram shows the API calls for video playback WITHOUT static URLs.

Video Cloud playback
Video Cloud playback

Static URLs

With Brightcove's Playback API (2.0.0), static URLs are available.

Features

Here are the features associated with static URLs:

Feature Comment
Authorization JSON Web Token (JWT)
BYO CDN Brightcove's CDN will continue to deliver the manifest and sub-manifests.

Customer's CDN will deliver only the video segments.

Closed Captions Only in-manifest captions are currently supported.
Delivery Rules VOD only
DRM VOD only
Live streams Supported formats via Dynamic Delivery:
  • HLS
  • HLS VMAP
Server-Side Ad Insertion (SSAI) VOD and Live
Video-On-Demand (VOD) Supported video formats via Dynamic Delivery:
  • HLS
  • DASH
  • HLS VMAP
  • DASH VMAP
  • MP4
VOD assets Thumbnails and poster images

Implementing Static URLs

Static URLs include the following:

  • Account ID
  • Video ID (or reference)
  • Delivery Type (HLS, Dash)
  • Configuration options (SSAI, DRM, CDN, etc.)

Static URLs are secured using a customer-generated and signed JSON Web Token (JWT). With this token, you can configure and enforce aspects of delivery. For details, see the Creating a JSON Web Token section.

Domain

The domain used for Static URLs is the Playback API URL:

https://edge.api.brightcove.com/playback/v1/

Query params

Query Params
Query Param Value
bcov_auth JWT see below

Video-On-Demand (VOD) Endpoints

Static URL examples for each Delivery Type:

HLS Master Manifest
/accounts/{{account_id}}/videos/{{video_id}}/master.m3u8?bcov_auth={jwt}
DASH Manifest
/accounts/{{account_id}}/videos/{{video_id}}/manifest.mpd?bcov_auth={jwt}
HLS VMAP [1]
/accounts/{{account_id}}/videos/{{video_id}}/hls.vmap?bcov_auth={jwt}
DASH VMAP [1]
/accounts/{{account_id}}/videos/{{video_id}}/dash.vmap?bcov_auth={jwt}
Highest Bitrate MP4 [2]
/accounts/{{account_id}}/videos/{{video_id}}/high.mp4?bcov_auth={jwt}
Lowest Bitrate MP4 [2]
/accounts/{{account_id}}/videos/{{video_id}}/low.mp4?bcov_auth={jwt}
Thumbnail images
/accounts/{{account_id}}/videos/{{video_id}}/thumbnail.jpg?bcov_auth={jwt}
Poster images
/accounts/{{account_id}}/videos/{{video_id}}/poster.jpg?bcov_auth={jwt}

Notes

  • [1] HLS and DASH VMAPs can only be retrieved if you include the ssai claim when you create the JWT.
  • [2] When using the high.mp4 and low.mp4 endpoints, your videos must include MP4 renditions or you will get the following error:
    404 (NO RESOURCE)

Live Endpoints

Static URL examples for Live streams:

HLS Master Manifest
/accounts/{{account_id}}/videos/{{video_id}}/master.m3u8?bcov_auth={jwt}
HLS VMAP [1]
/accounts/{{account_id}}/videos/{{video_id}}/hls.vmap?bcov_auth={jwt}

Notes

  • [1] HLS VMAPs can only be retrieved if you include the ssai claim when you create the JWT.

Creating a JSON Web Token

To create a token to use when communicating with Brightcove's Playback API, see the Creating a JSON Web Token (JWT) document. You will find the claims that can be used for static URL delivery there.

Using Content protection (DRM)

You can include the pro claim, as defined above, to specify a protection type.

For license requests, the JWT does not need any payload, but it has to be signed using the same RSA key as the manifest request JWT.

Widevine license request

You can use the following endpoint to get the DRM license for Widevine:

/accounts/{{account_id}}/videos/{{video_id}}/licenses/cenc/widevine?bcov_auth={JWT}

FairPlay app cert

For FairPlay app certificates, the endpoint is:

/accounts/{{account_id}}/fairplay_app_cert

PlayReady endpoint

For PlayReady, the endpoint for the licence request is:

/accounts/{{account_id}}/videos/{{video_id}}/licenses/cenc/playready?bcov_auth={JWT}

Notes

The following notes apply to Static URL Delivery:

  • In-Manifest captions are supported. Out-of-band sidecar captions will be supported in a future release.
  • The customer's BYO CDN will deliver the video segments, while Brightcove's CDN will continue to deliver manifest and sub-manifests.
  • Brightcove supports using a JWT that does not expire. To do this, exclude the exp claim when creating your token.

Limitations

The following limitations apply to Static URL Delivery.

  • Brightcove does not support SSAI URL parameter forwarding for Static URL delivery.