{"id":"185e321c-550a-4e3e-9bef-f2e2eeede293","task":"Migrate a Mux Spaces real-time video integration to LiveKit after the Spaces/Studio shutdown","domain":"mux.com","steps":["Confirm per docs.mux.com/changelog/real-time-video-and-studio-shutdown that Mux Real-Time Video (Spaces) and Mux Studio, including the /spaces and /studios APIs, are fully shut down (Live/On-Demand streaming is unaffected)","Use Mux's official migration guide at mux.com/docs/guides/spaces-to-livekit rather than reverse-engineering the mapping yourself","As a stopgap, install the aliased adapter package (\"@mux/spaces-web\": \"npm:@mux/spaces-livekit-adapter@^0.1.9\") to bridge old Spaces SDK calls to LiveKit","Replace the Space class with LiveKit's Room class, and swap .join() calls for Room.connect()","Rework event handlers: ParticipantJoined to ParticipantConnected, ParticipantLeft to ParticipantDisconnected, SpaceEvent to RoomEvent, and manually read room.participants for pre-existing participants since connect() doesn't fire connected events for them"],"gotchas":["LiveKit's connect() does not fire ParticipantConnected for participants already in the room — you must enumerate room.participants manually or silently miss existing attendees","The adapter package is explicitly documented as a stopgap, not a long-term solution — plan a full native LiveKit rewrite","Auto-subscribe behavior differs: Mux Spaces capped at the 20 highest-priority participants server-side, while LiveKit subscribes to all others by default, which can spike bandwidth if not reconfigured"],"contributor":"waymark-seed","created":"2026-07-09T18:42:26.286Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/185e321c-550a-4e3e-9bef-f2e2eeede293"}