mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-27 07:52:24 +00:00
Third live/short plan, sequenced after #16 (ingest) + #16b (shorts). Turns the maintainer's BitVid Live design into a repo-accurate, convention-aligned plan: - Core decision: Nostr-native control layer, NOT a hosting backend. Static client stays static (signs, no keys, no server); the one thing a browser can't do (receive/route live media) is isolated in an OPTIONAL server-side Media Node/Bridge (MediaMTX). External-provider-only mode (Phase 1) needs zero infra. - Cross-linked to docs/live-ingest-plan.md (#16): the watch side (Live tab, player, chat, zaps, hls.js) is a dependency and reused; this doc adds the builders + Studio + Media Node/Bridge. Shared Phase 0 schema in nostrEventSchemas. - Verified against real code: NIP-98 HTTP-Auth (kind 27235) builder exists for bridge auth; s-tag + js/utils/storagePointer.js -> .info.json is exactly how archive->VOD maps (ended stream becomes an ordinary kind-30078 video + 34235 mirror); canonical video kind 30078. - Decisions surfaced: hosting model, signing-during-stream (tab-open vs NIP-46), pass-through vs transcode, WebRTC scope, local Bridge scope, flag reconciliation (FEATURE_LIVE_INGEST/PUBLISH/BRIDGE/RESTREAM). - 9 phases (0 flags+schema → 1 external-provider no-infra → 2 mock bridge → 3 Media Node MVP → 4 recording/VOD → 5 restream → 6 OBS companion → 7 local Bridge → 8 WebRTC), 5 engineering-rule invariants, risks, sources. Co-Authored-By: Claude Opus 4.8 <[email protected]>