every.channel/evolution/proposals/ECP-0094-nbc-browser-backed-source-with-adobe-auth.md

2.3 KiB

ECP-0094: NBC Browser-Backed Source with Adobe Auth

Status: Proposed

Decision

Add nbc.com/watch/... as a manual source in the Tauri app by treating it as a browser-backed capture source instead of a direct manifest source.

The desktop app will:

  • recognize NBC watch URLs as a distinct nbc source kind
  • launch Chrome with a persistent profile so Adobe Pass / MVPD state can survive across runs
  • wait for the Adobe/NBC entitlement sequence seen in intake/
  • capture the rendered video element from the authenticated browser tab and feed those frames into the existing ffmpeg CMAF ladder path

Motivation

The intake traces show NBC live playback is not exposed as a plain live HLS or clear DASH input:

  • page metadata comes from friendship.nbc.com
  • entitlement is gated by Adobe Pass on sp.auth.adobe.com
  • authorization is validated through NBC's tokenverifier
  • playout resolves to MediaTailor DASH plus Widevine license requests

That means the existing source model cannot ingest NBC by simply resolving a URL for ffmpeg. We need a source path that can execute the browser login/auth/player flow first.

Scope

In scope:

  • nbc.com/watch/... detection in the Tauri add-stream flow
  • persistent manual-source storage for the new kind
  • Chrome launch/profile handling for NBC playback
  • readiness checks tied to the Adobe/session/authorize/token-verifier path observed in the traces
  • browser-frame capture into the existing live transcode/publish pipeline

Out of scope:

  • generic DRM extraction or CDM key handling
  • unattended credential entry for every MVPD provider
  • CLI ingest support in ec-node
  • perfect parity with native audio capture in the first cut

Alternatives Considered

  • Treat NBC as a normal HLS/DASH source. Rejected because the trace shows DRM-gated DASH that ffmpeg cannot ingest directly.
  • Re-implement the full Adobe + MVPD HTTP flow in-process. Rejected for the first cut because the real browser/player state is already required for playout and provider flows vary.
  • Leave NBC unsupported. Rejected because the traces are sufficient to define a pragmatic desktop path now.

Rollout / Reversibility

  • The change is additive and isolated to the desktop app's manual-source flow.
  • Roll back by removing the nbc source kind and browser capture path.
  • Existing HDHomeRun, HLS, Linux DVB, and yt-dlp flows remain unchanged.