Overview: Cross-Device Resume

In this topic, you will learn about the Brightcove's Cross-Device Resume (XDR) feature.


Brightcove's Cross-Device Resume (XDR) feature allows viewers to start watching video on one device, pause the video, and then continue watching later on the same or a different device. When viewers resume playback, they'll continue watching where they left off. This provides a seamless viewing experience for a piece of content.

The XDR service stores viewing activity, including the most recent play position. This information is retrieved to resume playback on any device.

Brightcove's XDR feature:

  • Integrates with your customer web site and mobile device apps
  • Uses REST-based APIs and native language calls on desktop and mobile devices
  • Works with content stored in your Video Cloud library
  • Retains play position information for 90 days
  • Meets GDPR and COPPA compliance


The following are required to use Cross-Device Resume:

  • You must use the latest version of Brightcove Player and the Native SDKs that supports cross-device resume.
  • You will need a server-side application to make the REST API request to get the playback position.

Account setup

Contact your Customer Success Manager to enable your account for cross-device resume.

Process flow

This feature allows viewers to start watching on one device, pause it, and continue watching on another device.

Step 1

As a viewer watches a video, the player continuously records the playhead position of the video being watched. This information is stored in the XDR API.

Record playhead position
Record playhead position

Step 2

When the viewer resumes watching the video on a different device, the playhead position is retrieved from the XDR API. Playback resumes where the viewer left off.

Resume playback
Resume playback


To implement Cross-Device Resume, follow these steps:

  1. Even though viewer data is sent to Brightcove analytics automatically, you need to set the viewer identifier in your app. For details, see the linked documents in step 3.

    The information sent and stored in the XDR API will include:

    • account_id - Video Cloud account ID
    • viewer_id - ID of the viewer whose playheads are being saved
    • video_id - Video Cloud ID of the video(s) watched by the viewer
    • playhead_seconds - Current playhead position in seconds

  2. Get a viewer's playback position by making a request to the XDR API. You will need a server-side application to make the REST API request for the playback position.

    The request to the XDR API returns the playback position in seconds.

    For details, see the following:

  3. Resume playback in your application. For details, see the following:


Here are some frequently asked questions related to Cross-Device Resume.

Is the 30-second lag time consistent?

It’s up to 30s, but usually less.

If you switch devices before that, you’ll get the last known position, which will be 10s earlier.

Playhead changes are every 10s based on the engagement beacon frequency. It is not recorded based on any other events, so play/pause won’t affect the stored position.

Can the 90-day retention be overridden?


Why is a backend service needed?

The XDR service extracts position and user ID from the player engagement beacons and makes those available through an Oauth API.

How do I implement XDR for non-Brightcove player devices, like roku and smart TVs?

Using the Data collection API, you need to implement video_engagement beacons, making sure to include the user=X parameter.

Brightcove will automatically parse the playhead time from the engagement range parameter.