2016-01-25 6 views
5

Im Moment versuche ich herauszufinden, was ich falsch mache, wenn Übergang von meiner YT-Sendung zu leben.Can not Übergang von meinem Youtube Broadcast zu leben mit Youtube API

Also mache ich die Anfrage und erhalte die folgende Antwort:

{ 
    "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" 
} 

ich natürlich oft docs gelesen habe, so habe ich den Livestream überwacht und wurde für seinen „aktiven“ Wartezustand (und meine Broadcast hat lifeCycleStatus = "ready").

Fehlermeldung nicht den wahren Grund, warum kann ich den Übergang nicht tun.
Und ... natürlich habe ich keinen Zugriff auf Protokolle von Youtube-Servern :)

Was können Sie vorschlagen?
Wie finde ich heraus, wo liege ich falsch?

Also selbst wenn ich etwas verpasst habe, helfen mir Docs und Fehlermeldungen nicht, irgendetwas zu verstehen. Wie auch immer ist es eine Art „Bug“ für YT Live API ...

+0

Können Sie Ihre Anfrage posten, wenn Sie versuchen, Ihre Liveübertragung zu übertragen? Vielleicht ist einer deiner Parameter falsch. – JAL

+0

Leider habe ich Tonnen von .jar's von Google verwendet, also wurden alle http-Anfragen von diesen .jars erledigt, also von mir versteckt. Wahrscheinlich gibt es eine Option, um den ausführlichen Modus oder etwas ähnliches zu aktivieren ... trotzdem sieht es so aus, als hätte ich die Lösung gefunden, also werde ich sie hier veröffentlichen. – rshmelev

Antwort

10

So etwas unklar Regel lautet:

  1. sicherzustellen, dass Sie haben Ausstrahlung und Live-Stream erstellt und fertig.
    und dass Broadcast-Lifecycle-Status sicherzustellen, ist nicht COMPLETE, sonst Sendung ... so sicherzustellen, dass Ihre Sendung Lifecycle-Status ist ready
  2. binden Broadcast an der Live-Stream
  3. Start veröffentlichen Video
  4. warten auf der Live-Stream erstellen für Live-Stream Status active
  5. Übergang zu testing (ja, haben Sie es zu tun, anstatt zu live bewegen)
  6. Warten auf Sendung lifeCycleStatustesting
  7. Übergang zu live
  8. Warten auf Sendung zu werden lifeCycleStatus zu live werden

Sie nicht testing überspringen und complete-testing oder ready nicht übergehen kann.

+1

Ich bin mir nicht sicher, dass dies der Fall ist. Die Dokumente scheinen auf etwas anderes hinzuweisen: https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#contentDetails.monitorStream.enableMonitorStream –

1

Ich habe die gleiche Frage, endlich habe ich das Problem gefunden. Nach dem Postbefehl transiton zum Testen ist der lifeCycleStatus: liveStarting, wir müssen warten, bis LifeCycleStatus getestet wird. Also sollten wir Broadcast-Status bekommen. hier ist mein Code:

liveStreamRequest = youtube.liveStreams() 
        .list("id,status") 
        .setId(liveBroadcast.getContentDetails() 
          .getBoundStreamId()); 
      LiveStreamListResponse returnedList = liveStreamRequest.execute(); 
      List<LiveStream> liveStreams = returnedList.getItems(); 
      if (liveStreams != null && liveStreams.size() > 0) { 
       LiveStream liveStream = liveStreams.get(0); 
       if (liveStream != null) 
        while (!liveStream.getStatus().getStreamStatus() 
          .equals("active")) { 
         Thread.sleep(1000); 
         returnedList = liveStreamRequest.execute(); 
         liveStreams = returnedList.getItems(); 
         liveStream = liveStreams.get(0); 
        } 
      } 

Hoffnung jemand kümmern sich um dieses Problem zu helfen!

0

Sie können 4-7 Schritte lassen, wenn: der Monitor-Stream des Broadcast wurde deaktiviert, indem Sie die contentDetails.monitorStream.enableMonitorStream Eigenschaft zu false beim Erstellen oder Aktualisieren dieser Sendung.