Skip to content

feat(livetv): watchable HLS/MPEG-TS and Guide/Channels/Recordings - #24

Merged
JonahMMay merged 2 commits into
mainfrom
cursor/livetv-watchable-redesign-6b7d
Jul 27, 2026
Merged

feat(livetv): watchable HLS/MPEG-TS and Guide/Channels/Recordings#24
JonahMMay merged 2 commits into
mainfrom
cursor/livetv-watchable-redesign-6b7d

Conversation

@JonahMMay

Copy link
Copy Markdown

Problem

Part of Live TV usability after prairie-server HLS bridge + DVR.

Android Live TV forced HLS MIME on every session, ignored server transport, and only offered a flat channel list (no recordings browser / guide tabs).

Approach

  • Decode transport on session start; prefer HLS URL when transport=hls, MPEG-TS proxy otherwise.
  • Phone/TV players: ExoPlayer HLS (PlayMethod.TRANSCODE) or direct MPEG-TS (PlayMethod.DIRECT, container mpegts) with existing auth + relative URL resolution.
  • Redesign Live TV UI: Guide | Channels | My recordings (search on Channels; cancel active recordings; open completed library_item_id in Item Detail on phone).

Testing

  • Unit tests updated for transport decoding / playable URL selection.
  • Full Gradle unit tests not run here (no Android SDK in this environment).

AI Disclosure

  • Tool(s): Cursor Cloud Agent
  • Model(s): Composer
  • Involvement: fully AI-generated
  • Adversarial review: Confirmed players no longer always force M3U8; mpegts uses progressive TS MIME; recordings cancel is soft-fail on load errors so older servers still show channels.

Checklist

  • Adversarial review summarized above
  • Focused Live TV model/API tests updated
Open in Web Open in Cursor 

Decode session transport, play HLS via ExoPlayer remux MIME or MPEG-TS
direct, and redesign phone/TV Live TV around Guide, Channels, and My
recordings with cancel/play hooks.

Co-authored-by: Jonah May <JonahMMay@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ca73fada-7424-4d34-9766-795f5723b8ec

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch cursor/livetv-watchable-redesign-6b7d

Comment @coderabbitai help to get the list of available commands.

UI already shows now/next only; guard scheduleRecording the same way
as web/Apple when stop is in the past.

Co-authored-by: Jonah May <JonahMMay@users.noreply.github.com>
@JonahMMay
JonahMMay marked this pull request as ready for review July 27, 2026 16:36
@cursor

cursor Bot commented Jul 27, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@JonahMMay
JonahMMay merged commit 46e9da1 into main Jul 27, 2026
2 checks passed
@JonahMMay
JonahMMay deleted the cursor/livetv-watchable-redesign-6b7d branch July 27, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants