support Contact Support | system status System Status
Page Contents

    Static URL Delivery

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

    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.

    Requirements

    The following requirements are needed for static URLs:

    Account setup

    To sign the JSON Web Token (JWT), your Brightcove account needs to be enabled for Playback Authorization Service. Contact your account manager to have this done.

    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 v2, static URLs are now available.

    Features

    Here are the features associated with static URLs:

    Feature Comment
    Static URL support for VOD Supported video formats via Dynamic Delivery only:
    • HLS
    • DASH
    • HLS VMAP
    • DASH VMAP
    Authorization JSON Web Token (JWT)
    DRM VOD only
    Server-Side Ad Insertion (SSAI) VOD only
    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.

    Implementing Static URLs

    Static URLs include the following:

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

    These 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 v2 (PAPIv2) URL:

    https://playback.brightcovecdn.com/playback/v1/

    Endpoints

    Static URL examples for each Delivery Type:

    Delivery Type URL
    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
    /accounts/{account_id}/videos/{video_id}/hls.vmap?bcov_auth={jwt}
    DASH VMAP
    /accounts/{account_id}/videos/{video_id}/dash.vmap?bcov_auth={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.

    Claims for Static URL Delivery

    The following claims can be used with Brightcove's Static URL Delivery.

    Field Type Required Description
    accid String The account id that owns the content being played
    exp Integer Time this token will no longer be valid, in seconds since the Epoch. Must be no more than 30 days from iat
    iat Integer Time this token was issued, in seconds since the Epoch
    conid String If present, this token will only authorize license fetching for a specific Video Cloud video id.

    Must be a valid video id.
    pro String Specifies a protection type in the case where multiple are available for a single video.

    Values:
    • "" (default for clear content)
    • "aes128"
    • "widevine"
    • "playready"
    • "fairplay"
    vod Object Contains specific configuration options for Video-On-Demand.
    ssai String Your Server-Side Ad Insertion (SSAI) configuration id.

    Here is an example of the JSON Web Token (JWT) claims that you might use:

    {
            // account id: JWT is only valid for this accounts
            "accid":"4590388311111",
            // expires: timestamp when JWT expires
            "exp":1577989732,
            // issued at: timestamp when the JWT was created
            "iat":1575484132,
            // content id: JWT is only valid for video id or reference id
            "conid":"5805807122222",
            // protection: specify a protection type in the case where multiple are available for a single video
            "pro":"aes128",
            // VOD specific configuration options
            "vod":{
              // SSAI configuration to apply
              "ssai":"efcc566-b44b-5a77-a0e2-d33333333333"
            }
          }

    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.

    License request

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

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

    Valid values for scheme:

    • "widevine"
    • "playready"
    • "fairplay"

    FairPlay app cert

    For FairPlay app certificates, the endpoint is:

    /accounts/{account_id}/fairplay_app_cert

    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 does support using a JWT that does not expire. To do this, do not include the exp claim when creating your token.

    Limitations

    The following limitations apply to Static URL Delivery.

    • Live streams will be supported in a later release.
    • MP4s will be supported in a later release.
    • Delivery Rules will be supported in a later release.

    Page last updated on 13 Oct 2020