Make YouTube auth optional and non-blocking; manual stream key is baseline go-live path
This commit is contained in:
@@ -13,17 +13,20 @@
|
||||
|
||||
---
|
||||
|
||||
## TASK 2 — YouTube OAuth2 Authentication
|
||||
## TASK 2 — YouTube OAuth2 Authentication (optional, non-blocking)
|
||||
|
||||
**Goal:** Fully working Google OAuth2 flow — user clicks "YouTube", browser opens, authorization callback lands, channel info is stored.
|
||||
|
||||
**Design constraint:** Sign-in must NEVER block core usage. Users can go live with a manual stream key, build scenes, and record without authenticating. OAuth is an enhancement — it unlocks live chat, broadcast creation, scheduling, and YouTube-side health — not a prerequisite.
|
||||
|
||||
### Requirements:
|
||||
|
||||
1. **Google Cloud OAuth credentials** — client ID + secret (user provides; needs "Localhost" redirect URI)
|
||||
2. **Local HTTP listener** — `HttpListener` on `http://localhost:PORT/oauth2/callback` to catch the redirect
|
||||
3. **Browser launch** — open the authorization URL in the default browser
|
||||
4. **Token persistence** — store access/refresh tokens securely (Windows DPAPI), reload on startup
|
||||
5. **UI state** — account name/avatar shown when connected, connection status reflected
|
||||
5. **UI state** — account name/avatar shown when connected; "sign in (optional)" affordance, never a gate
|
||||
6. **Stream key entry stays manual** — OAuth does not replace the manual stream key path
|
||||
|
||||
### Tests:
|
||||
|
||||
|
||||
@@ -50,3 +50,10 @@ Apply this to every UI decision:
|
||||
- Prefilled YouTube defaults (RTMP URL, bitrate, resolution, latency)
|
||||
- Visual/drag-and-drop scene building over property panels
|
||||
- Every action produces a visible outcome — no dead ends
|
||||
|
||||
## Auth is optional, never a gate
|
||||
|
||||
YouTube OAuth2 sign-in must NEVER block core usage. Users can go live with a manual stream key,
|
||||
build scenes, and record without authenticating. OAuth is an enhancement — it unlocks live chat,
|
||||
broadcast creation, scheduling, and YouTube-side health — not a prerequisite. Treat the sign-in
|
||||
button as "sign in (optional)", never as a requirement to use the app.
|
||||
|
||||
Reference in New Issue
Block a user