Enable CMCD in the video player used by the application. Gcore currently processes CTA-5004 (CMCD v1). Gcore can process CMCD data only when the player sends it with media requests.
CMCD support in Gcore CDN
Gcore currently processes CMCD v1. Later CTA revisions added keys and reporting modes, and they removed the v1nrr key. Configure players that support later CMCD versions to send CMCD v1 for Gcore.
Gcore processes CMCD values sent in the query string. Processing CMCD from request headers is available by special request.
Gcore collects CMCD data at the CDN layer and can process it with internal tools to improve delivery and investigate playback behavior. To analyze a playback issue with CMCD data, contact Support and share the affected stream URL, approximate playback time, viewer geography, player name and version, and the session ID from the player.
CMCD data is not currently available through self-service Customer Portal reports. Gcore Support can help investigate CMCD data with internal tools.
Query string CMCD
When CMCD is sent in the query string, the player adds one case-sensitiveCMCD parameter to media requests. All key/value pairs are URL-encoded into that parameter.
nrr is a v1 key. Later CTA revisions moved range information into nor and removed nrr.
Hyphens in the Value column mean that key was not present in this example request.
CMCD values change between requests (buffer length, throughput, bitrate). If the CDN includes the
CMCD query parameter in the cache key, each request can create a separate cached copy of the same segment and the cache hit ratio drops.
After enabling query-string CMCD, open Ignore query string and confirm one of these modes:
- Ignore all — every query parameter, including
CMCD, is omitted from the cache key. - Ignore only — the parameter list includes
CMCD, so CMCD is omitted from the cache key while other query parameters stay in the cache key.
HTTP request headers
Header mode is available in several players, but Gcore processesCMCD- headers only after the special request described in CMCD support. In header mode, CMCD data is sent in HTTP request headers. The specification defines four case-insensitive header fields with the CMCD- prefix.
CMCD-Request, CMCD-Object, CMCD-Status, and CMCD-Session. Custom headers can trigger a CORS preflight (OPTIONS) for media URLs, which increases the request rate against the CDN. Query-string mode avoids that preflight.
Supported video players for CMCD
The CMCD specification allows players to send information in two ways:- Query string parameters: CMCD data is added to media request URLs as a
CMCDquery parameter. - HTTP request headers: CMCD data is sent in dedicated HTTP request headers.
CMCD configuration in video players
The examples below cover selected players from the table. JW Player and Roku are listed as supported; use each vendor’s CMCD documentation for those products. Set identifiers as defined in CTA-5004 (CMCD v1):- Session ID (
sid): a UUID generated for each playback session on a single device. - Content ID (
cid): a stable identifier for the same content across sessions and devices, derived from an asset ID or manifest URI. Do not generate a new random value per session.
HLS.js
HLS.js
Enable CMCD in the HLS.js configuration. The HLS.js API documents the
cmcd option.Shaka Player
Shaka Player
Enable CMCD in the Shaka Player configuration. The Shaka API documents the
cmcd object.dash.js
dash.js
Enable CMCD in the dash.js configuration. dash.js can send later CMCD versions; set
version to 1 to send CMCD v1 for Gcore. The dash.js CMCD documentation documents the streaming.cmcd settings.ExoPlayer (Android)
ExoPlayer (Android)
Enable CMCD in the ExoPlayer configuration. The ExoPlayer CMCD guide documents
CmcdConfiguration. Generate a UUID for the session. Derive contentId from a stable asset identifier (mediaId or the media URI), not from a second random UUID.AVPlayer (iOS)
AVPlayer (iOS)
Enable CMCD headers in the AVPlayer configuration. Apple documents
sendsCommonMediaClientDataAsHTTPHeaders.Gcore Video Player
Gcore Video Player
Enable CMCD with the
CmcdConfig plugin. Register the plugin before creating the player, then pass a per-session UUID and a stable content ID in the cmcd object.Playback verification
After the player is configured, confirm that media requests carry CMCD before contacting Support.1
Stream playback
Play the stream in the player used by the application.
2
Request inspection
Open browser developer tools or the device network inspector. Select a manifest or segment request to the CDN.
3
CMCD confirmation
For query-string mode, confirm the case-sensitive
CMCD query parameter is present. For header mode, confirm CMCD-Request, CMCD-Object, CMCD-Status, and CMCD-Session as sent by the player.4
Session ID
Copy the session ID (
sid) from the request. Keep that value when contacting Support.