# ECP-0096: Public NBC Guide Before Auth Status: Proposed ## Decision Add a public NBC guide feed to the Tauri app so browseable NBC linear channels appear before any Adobe or MVPD authentication happens. The desktop app will: - fetch the unauthenticated `friendship.nbc.com` live guide shelf seen in `intake/` - materialize those rows as normal `StreamDescriptor` entries in the existing channel list - route each discovered row to a stable `nbc.com/live?brand=...` URL so selecting a card enters the existing NBC auth and playback path only when the user chooses to watch ## Motivation The NBC capture already proved that playback is auth-gated, but the same trace also contains a public guide layer with channel titles, current programs, branding, and stream access names. That is enough to support browse-before-auth behavior without exposing entitlement or playout tokens. This keeps discovery public while preserving the existing browser-backed auth boundary from ECP-0094 and ECP-0095. ## Scope In scope: - unauthenticated NBC public guide fetches for channel browsing - conversion of live guide rows into `nbc` stream descriptors and sources - Tauri UI updates needed to surface `nbc` rows in the channel list Out of scope: - reverse-engineering or exposing entitlement responses - direct manifest playback without the existing auth flow - a full public sports-event catalog beyond the live channel guide in this cut ## Alternatives Considered - Keep NBC URL-only. Rejected because it hides browseable public metadata that the trace already exposes. - Expose MediaTailor or token-verifier outputs in discovery. Rejected because those belong to the authenticated playback path. - Build a separate NBC-only discovery UI. Rejected because the existing channel list can host the guide with less surface area. ## Rollout / Reversibility - The change is additive to the desktop app and only affects discovery presentation. - Roll back by removing the public guide fetch and the synthesized NBC discovery entries. - Existing NBC auth and playback handling remains the same once a user chooses to watch.