Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot make transition of my Youtube broadcast to live using Youtube API

Right now I'm trying to figure out what i'm doing wrong when making transition of my YT broadcast to live.

So I make the request and get the following response:

{
  "code" : 403,
  "errors" : [ {
    "domain" : "youtube.liveBroadcast",
    "message" : "Invalid transition",
    "reason" : "invalidTransition",
    "extendedHelp" : "https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/transition#params"
  } ],
  "message" : "Invalid transition"
}

Of course i've read docs many times so I've monitored the LiveStream and was waiting for its "active" state (and my Broadcast has lifeCycleStatus="ready").

Error message doesn't explain real reason why cannot I do the transition.
And... of course I do not have access to logs of Youtube servers :)

What can you suggest?
How to find out where am I wrong?

So even if i've missed something, docs and error message do not help me to understand anything. So anyway it is kind of a "bug" for YT LiveStreaming API...

like image 820
rshmelev Avatar asked Jan 25 '16 22:01

rshmelev


People also ask

What is the YouTube Live Streaming API?

The YouTube Live Streaming API lets you create, update, and manage live events on YouTube. Using the API, you can schedule events (broadcasts) and associate them with video streams, which represent the actual broadcast content.

Why can’t I stream live video on YouTube?

The live broadcast is already in the requested status or processing to the requested status. The request is not authorized to transition the live broadcast. The user that authorized the request is unable to stream live video on YouTube at this time.

What happens when I change the status of a YouTube broadcast?

Changes the status of a YouTube live broadcast and initiates any processes associated with the new status. For example, when you transition a broadcast's status to testing, YouTube starts to transmit video to that broadcast's monitor stream.

How do I go live on YouTube?

To go live there are several steps: 1) authenticate the user 2) create a broadcast 3) create a stream 4) bind the stream to the broadcast 5) send your video to a server which encodes the video and sends it to youtube 6) transition the broadcast status to live.


2 Answers

So a bit unclear rule is:

  1. ensure you have broadcast and livestream created and ready.
    and ensure that broadcast lifecycle status is not COMPLETE, otherwise recreate broadcast ... so ensure that your broadcast lifecycle status is ready
  2. bind broadcast to livestream
  3. start publishing video to livestream
  4. wait for livestream status active
  5. transition to testing (yes, you have to do it instead of moving to live)
  6. wait for broadcast lifeCycleStatus to become testing
  7. transition to live
  8. wait for broadcast lifeCycleStatus to become live

You cannot skip testing and cannot transition from complete to testing or ready.

like image 60
rshmelev Avatar answered Sep 30 '22 05:09

rshmelev


You can leave 4-7 steps if: the broadcast's monitor stream was disabled by setting the contentDetails.monitorStream.enableMonitorStream property to false when creating or updating that broadcast.

like image 26
Maxim Firsoff Avatar answered Sep 30 '22 05:09

Maxim Firsoff