Overview
oEmbed is an open standard that allows third-party platforms to automatically display rich embedded content when a URL is shared. When you paste a Brightcove Player URL into a platform that supports oEmbed (such as WordPress, Slack, or Notion), the platform can automatically render the video with its title, thumbnail, and an interactive player — without requiring any manual embed code.
Brightcove provides an oEmbed API endpoint and is registered as an official provider on oembed.com, enabling automatic discovery across the oEmbed ecosystem.
How it works
When a Brightcove Player URL is pasted into an oEmbed-aware platform, the following happens automatically:
- The platform recognizes the
players.brightcove.netURL pattern from the oEmbed provider registry. - The platform calls the Brightcove oEmbed endpoint with the shared URL.
- The endpoint returns a JSON response containing the video title, thumbnail image, and iframe embed code.
- The platform renders the rich embed in place of the bare URL.
Supported URL formats
The oEmbed endpoint supports any URL matching the pattern:
https://players.brightcove.net/{account_id}/{player_id}_{embed_id}/index.html?videoId={video_id}
https://players.brightcove.net/{account_id}/{player_id}_{embed_id}/index.html?playlistId={playlist_id}
Examples
https://players.brightcove.net/1160438696001/RUsPQ8qzl_default/index.html?videoId=6327763506112
https://players.brightcove.net/1160438696001/default_default/index.html?playlistId=5282200243001
oEmbed API endpoint
Request
GET https://oembed.brightcove.com/?url={encoded_player_url}&format=json
Parameters
| Parameter | Required | Description |
|---|---|---|
url |
Yes | A URL-encoded players.brightcove.net URL containing a videoId or playlistId query parameter. |
format |
No | Response format. Only json is supported. |
maxwidth |
No | Maximum width of the embed iframe in pixels. The height is calculated to maintain a 16:9 aspect ratio. |
maxheight |
No | Maximum height of the embed iframe in pixels. The width is calculated to maintain a 16:9 aspect ratio. |
Alternative parameters (non-standard)
The endpoint also accepts direct parameters instead of a URL:
| Parameter | Description |
|---|---|
accountId |
Brightcove account ID |
playerId |
Player ID (defaults to default) |
videoId |
Video ID |
GET https://oembed.brightcove.com/?accountId=1160438696001&playerId=default&videoId=6327763506112
Example response
{
"type": "video",
"version": "1.0",
"provider_name": "Brightcove",
"provider_url": "https://players.brightcove.net/pages/v1/index.html?accountId=1160438696001&playerId=RUsPQ8qzl&videoId=6327763506112",
"title": "Brightcove Media Studio - Product Video",
"width": 640,
"height": 360,
"thumbnail_url": "https://cf-images.us-east-1.prod.boltdns.net/v1/static/1160438696001/.../1280x720/match/image.jpg",
"html": "<iframe class=\"brightcove-embed\" src=\"https://players.brightcove.net/pages/v1/index.html?accountId=1160438696001&playerId=RUsPQ8qzl&videoId=6327763506112&mode=iframe\" width=\"640\" height=\"360\" scrolling=\"no\" frameborder=\"0\" allowfullscreen></iframe>"
}
Response fields
| Field | Description |
|---|---|
type |
Always video |
version |
oEmbed specification version (1.0) |
provider_name |
Always Brightcove |
provider_url |
Landing page URL for the video |
title |
Video title as stored in Video Cloud |
width |
Embed width in pixels (default 640, respects maxwidth) |
height |
Embed height in pixels (default 360, respects maxheight) |
thumbnail_url |
Video poster image URL (omitted if no poster is set) |
html |
Ready-to-use iframe embed code |
Platform compatibility
The following table shows oEmbed and Open Graph support across popular platforms:
| Platform | Discovery method | Rich embed |
|---|---|---|
| WordPress | oEmbed provider registry | Yes — inline playable video |
| Slack | oEmbed discovery tag + registry | Yes — title, thumbnail, and link |
| Notion | oEmbed provider registry | Yes — inline playable video |
| Microsoft Teams | Open Graph tags | Title and thumbnail preview (for players with an assigned video) |
| Microsoft Viva Engage | Open Graph tags | Title and thumbnail preview (for players with an assigned video) |
| Facebook / LinkedIn | Open Graph tags | Title and thumbnail preview (for players with an assigned video) |
Caching
Responses from the oEmbed endpoint are cached for up to 1 hour by the API Gateway. If you update a video's title or poster and need the oEmbed response to reflect the change immediately, include a Cache-Control: max-age=0 header in your request.
Try it
You can test the oEmbed endpoint directly using curl:
curl "https://oembed.brightcove.com/?format=json&url=https%3A%2F%2Fplayers.brightcove.net%2F1160438696001%2FRUsPQ8qzl_default%2Findex.html%3FvideoId%3D6327763506112"
Or paste a players.brightcove.net URL directly into Slack, WordPress, or any oEmbed-aware platform to see the rich embed in action.
Known limitations
- Only JSON format is supported. XML format requests return a
501response. - The endpoint requires a valid
videoIdorplaylistId. Requests without one return a400error. - Videos that are geo-restricted or require a Playback Rights token may return a
403error from the oEmbed endpoint, as the endpoint calls the Playback API with the player's default policy key. - Open Graph metadata is only available for players that have a video pre-assigned in their player configuration. Players that load videos dynamically via URL parameters do not include
og:titleorog:imagetags.