# 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.
