Advance forge rollout, Ethereum rails, and NBC sources

This commit is contained in:
every.channel 2026-04-01 15:58:49 -07:00
parent be26313225
commit 7d84510eac
No known key found for this signature in database
88 changed files with 11230 additions and 302 deletions

View file

@ -0,0 +1,60 @@
# 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.