androidx / androidx/media

Add support for CMCD v2 in Media3

Open
#2,732 2 comments 6 reactions 1 assignee View on GitHub

@rohitjoins is already working on this.

Since Aug 19, 2025.

enhancement
Dominant language
Java
Stars
3k
Forks
955
Avg merge
12d 14h
Merged PRs (30d)
2

Description

[REQUIRED] Use case description

The current version of Android Media3 does not support CMCD v2 (Common Media Client Data version 2).
CMCD v2 was published by CTA in 2024 and brings important enhancements to the CMCD specification, including extended signaling, new data fields, and improved consistency for real-time streaming analytics.

For services that rely on CMCD to monitor playback quality, optimize CDN performance, and interoperate with industry-standard analytics platforms, the lack of CMCD v2 support in Media3 makes adoption challenging. As CMCD v2 is becoming the standard across major players and CDNs, having native support in Media3 is critical for compatibility and long-term adoption.

Proposed solution

Introduce CMCD v2 support in Media3, including:

Updating the CMCD implementation to align with the latest CTA specification.

Ensuring new CMCD v2 fields and semantics are included in outgoing requests.

Providing configuration options for developers to enable/disable CMCD v2, or to fall back to v1 if required.

Alternatives considered

Custom implementation: Manually implementing CMCD v2 injection through request interceptors or custom data collectors. However, this adds complexity, duplicates effort across projects, and risks divergence from the standard.

Relying on ExoPlayer extensions: Currently, ExoPlayer also does not provide CMCD v2 support, so waiting on both projects without a roadmap introduces uncertainty.

Native CMCD v2 support in Media3 would provide a standardized, reliable, and future-proof solution for developers.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.