Skip to content

Cast HLS streams correctly on Chromecast#4687

Open
leandroalonso wants to merge 1 commit into
pcios-811/hls-add-togglefrom
pcios-812/chromecast
Open

Cast HLS streams correctly on Chromecast#4687
leandroalonso wants to merge 1 commit into
pcios-811/hls-add-togglefrom
pcios-812/chromecast

Conversation

@leandroalonso

@leandroalonso leandroalonso commented Jul 6, 2026

Copy link
Copy Markdown
Member

Fixes PCIOS-812

Makes Chromecast cast HLS streams correctly. Builds on the HLS audio/video toggle work.

To test

Note

Requires a real Chromecast device.

  1. Play an episode with an HLS stream that contains video.
  2. Cast to a Chromecast (video-capable, e.g. a TV).
  3. Confirm playback starts on the device and shows video
  4. Also cast a regular (non-HLS) audio episode and a video podcast to confirm no regression.

Checklist

  • I have considered if this change warrants user-facing release notes and have added them to CHANGELOG.md if necessary.
  • I have considered adding unit tests for my changes.
  • I have updated (or requested that someone edit) the Event Horizon schema to reflect any new or changed analytics.

We assume HLS is always video.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes Chromecast playback for episodes delivered via HLS manifests by ensuring the Cast receiver is given the correct media classification and MIME type, so video-capable HLS streams render as video instead of audio-only.

Changes:

  • Treat streamed HLS episodes as video for Google Cast metadata (.movie) to encourage video rendering on the receiver.
  • Set Cast contentType to the HLS MIME type when casting an HLS manifest URL.
  • Expose Episode.hlsEnclosureType publicly from PocketCastsDataModel so the app target can reuse the canonical MIME type constant.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
podcasts/Google Cast/GoogleCastManager.swift Detect HLS streaming and adjust Cast metadata type + content MIME type accordingly.
Modules/Sources/PocketCastsDataModel/Public/Model/Episode+fromDictionary.swift Makes hlsEnclosureType public so it can be referenced by the app module when building Cast media info.

@leandroalonso leandroalonso marked this pull request as ready for review July 6, 2026 18:26
@leandroalonso leandroalonso requested a review from a team as a code owner July 6, 2026 18:26
@leandroalonso leandroalonso requested review from SergioEstevao and removed request for a team July 6, 2026 18:26

@SergioEstevao SergioEstevao left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants