mirror of
https://github.com/PR0M3TH3AN/bitvid.git
synced 2026-10-30 17:32:26 +00:00
Addresses "some NIP-71 videos don't play / he has multiple links" + "speed the liveness check + don't render unplayable". - Phase 1 — multi-source capture: nip71IngestAdapter collectVideoSources() exposes a `sources` list (all video imeta urls, in order; audio/image excluded; deduped) so mirrors are preserved (the adapter previously kept only one url). - Phase 2 — multi-source liveness: urlHealthController.probeUrlList() probes every candidate (primary + sources) via the existing video-element playability probe — healthy as soon as one source plays, offline only if ALL fail. So a dead primary host no longer hides a video with a live mirror. (Card hide policy in cardSourceVisibility was already correct.) - Phase 3 — speed: URL_PROBE_TIMEOUT_MS 8s -> 4s for a fast verdict so dead cards hide quickly; WebTorrent swarm probe stays generous. Remaining (TODO #5): player-side fail-over at play time; hide-until-verified for foreign ingested videos. Tests + mutation-verified (collectVideoSources video-only filter, probeUrlList first-ok/offline/timeout). 1271/1272 unit (known UploadModal flake). Co-Authored-By: Claude Opus 4.8 <[email protected]>