Search code examples
chromecastgoogle-castid3http-live-streaming

Retrieving Timed Metadata on Chromecast


We are developing a custom receiver for HLS video playback on Chromecast.

Our stream has Timed ID3 Metadata embedded in the MPEG-2 Transport Stream (TS files). I need the exact position in the stream that these ID3 tags are located for our app to function properly.

In my Custom Receiver, I am registering for the Host.processMetadata event, and am receiving the metadata tags as the fragments are processed, but I am unable to determine the position of the tags in the stream.

I am looking for the best way to determine the position in the stream that the Timed Metadata is located. Is there an API Call I am missing?

Notes: We are able to stream our HLS video, using the proper CORS headers. We are getting the accurate position of the Timed Metadata when playing this stream on iOS and Android players. We are working with an Android Sender. Working with:

  • Cast Receiver 2.0.0
  • Media Player 1.0.0
  • Chromecast Firmware Version 26653

Thank you!


Solution

  • Google has updated the Host API's ProcessMetadata method a week or two after I posted this question. The callback now includes the time in the stream that the metadata is located.

    See the docs for more: https://developers.google.com/cast/docs/reference/player/cast.player.api.Host#processMetadata