Common Media Client Data (CMCD) is a CTA-Wave standard for attaching real-time client-side telemetry to media requests. When enabled, the WebRTS client appends playback quality information — buffer state, current bitrate, latency, track ID, and session ID — to each media fetch request. Your CDN or origin server can read these values to make smarter decisions about caching, throttling, and quality-of-service monitoring. CMCD is disabled by default and must be explicitly enabled afterDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CeeblueTV/wrts-client/llms.txt
Use this file to discover all available pages before exploring further.
onStart fires.
CMCD Levels
TheCMCD enum controls how much data is sent per request:
| Value | String | Description |
|---|---|---|
CMCD.NONE | 'none' | CMCD disabled (default) |
CMCD.SHORT | 'short' | Sends only the most important keys, minimizing header overhead |
CMCD.FULL | 'full' | Sends all available CMCD keys |
Delivery Modes
TheCMCDMode enum controls how CMCD data is delivered to the server:
| Value | String | Description |
|---|---|---|
CMCDMode.HEADER | 'header' | Appended as HTTP request headers (default) |
CMCDMode.QUERY | 'query' | Appended as a cmcd query string parameter |
Enabling CMCD
CMCD properties must be set after
onStart fires. The underlying source — which owns the CMCD state — is not created until onsourceopen resolves internally, which happens asynchronously after player.start() returns. Setting these properties before onStart fires throws: Cannot change cmcd on stopped player.Resetting to Defaults
Setting any CMCD property toundefined resets it to its default value. This makes it safe to pass URL query parameters directly without checking whether they exist:
What Data Is Reported
On each media fetch, the following information is included in the CMCD payload:- Buffer state and depth — current
bufferAmountandbufferState - Bitrate — current audio and video byte rates
- Latency — estimated distance to the live edge
- Track ID — the ID of the track being requested
- Session ID — the value of
cmcdSid(if set)
player.computeStats() at the time of each request and encoded into the HTTP headers or query string using the CTA-5004 CMCD format.
CMCD and Source Compatibility
CMCD is only available when usingHTTPAdaptiveSource (the default source). Other source implementations — such as WSSource — do not support CMCD. Attempting to enable CMCD on an incompatible source throws: <SourceName> doesn't support CMCD.