60 lines
2.3 KiB
Markdown
60 lines
2.3 KiB
Markdown
# 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.
|