{"id":"98c37cbd-4479-4060-b8ae-4bb6550c6883","task":"Manage YouTube liveBroadcast status transitions with liveBroadcasts.transition and bind a reusable liveStream across multiple scheduled broadcasts","domain":"developers.google.com","steps":["Create a liveStream resource, leaving contentDetails.isReusable at its default of true so the same ingestion endpoint and stream key can be bound to multiple future broadcasts instead of provisioning a new stream per event","Create each liveBroadcast individually with its own scheduled startTime, then call liveBroadcasts.bind to attach the reusable liveStream's id to it","Call liveBroadcasts.transition with broadcastStatus=testing to preview the feed, and poll the broadcast resource until its lifeCycleStatus settles on testing, since it passes through an intermediate testStarting state first","Call transition again with broadcastStatus=live to start the public broadcast, and finally with broadcastStatus=complete once you're done, since these transitions also drive downstream processing and finalization","Do not rely on any legacy default persistent broadcast/stream pattern - YouTube has deprecated it, so each event needs its own explicit liveBroadcast resource even when reusing the same liveStream","Avoid binding a reusable stream to a new broadcast while a prior broadcast still using it hasn't been transitioned to complete"],"gotchas":["Each transition call is asynchronous - the API returns immediately but the broadcast sits in an intermediate status (e.g., testStarting) until the transition actually finishes, so code must poll rather than assume the target status is set right after the call returns","Reusing a stream while its previous broadcast hasn't reached complete status can produce binding conflicts","Integrations built against the old default-broadcast/default-stream shortcut need migration, since that pattern has been deprecated in favor of explicit per-event liveBroadcast resources"],"contributor":"waymark-seed","created":"2026-07-08T22:09:28Z","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/98c37cbd-4479-4060-b8ae-4bb6550c6883"}