2016-01-25 12 views
5

In questo momento sto cercando di capire cosa sto facendo male quando faccio passare la transizione della mia trasmissione YT per la diretta.Impossibile effettuare la transizione della mia trasmissione Youtube per vivere utilizzando l'API di YouTube

Così faccio la richiesta e ottenere la seguente risposta:

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

Naturalmente ho letto i documenti molte volte quindi ho monitorato il live stream e stavo aspettando il suo stato "attivo" (e il mio Broadcast ha lifeCycleStatus = "pronto").

Il messaggio di errore non spiega la vera ragione per cui non posso eseguire la transizione.
E ... ovviamente non ho accesso ai registri dei server Youtube :)

Che cosa suggerisci?
Come scoprire dove sbaglio?

Quindi anche se mi sono perso qualcosa, i documenti e il messaggio di errore non mi aiutano a capire nulla. Quindi, comunque si tratta di una specie di "bug" di YT Diretta API ...

+0

È possibile pubblicare la richiesta che si sta effettuando quando si tenta di eseguire la transizione della trasmissione dal vivo? Forse uno dei tuoi parametri è sbagliato. – JAL

+0

sfortunatamente usavo tonnellate di .jar da google, quindi tutte le richieste http sono state fatte da quel .jars, così nascosto da me. Probabilmente c'è un'opzione per attivare la modalità dettagliata o qualcosa di simile ... comunque sembra che abbia trovato la soluzione quindi la pubblicheremo qui. – rshmelev

risposta

10

Quindi una regola chiara bit è:

  1. accertarsi di aver trasmesso e livestream creato e pronto.
    e garantire che lo stato di trasmissione del ciclo di vita non è COMPLETE, altrimenti ricreare trasmissione ... così garantire che lo stato del ciclo di vita di trasmissione è trasmessa ready
  2. si legano ai livestream
  3. inizio pubblicazione di video per live stream
  4. attesa per lo stato di live streaming active
  5. transizione a testing (sì, devi farlo invece di passare a live)
  6. attesa per la trasmissione lifeCycleStatus diventare testing
  7. transizione verso live
  8. attesa per la trasmissione lifeCycleStatus diventare live

Non è possibile saltare testing e non può passare complete-testing o ready.

+1

Non sono sicuro che sia così. I documenti sembrano indicare diversamente: https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#contentDetails.monitorStream.enableMonitorStream –

1

Ho incontrato la stessa domanda, finalmente ho trovato il problema. Dopo il comando del comando transiton to testing, lifeCycleStatus è: liveStarting, dobbiamo aspettare che lifeCycleStatus diventi un test. Quindi dovremmo ottenere lo stato di trasmissione. Ecco il mio codice:

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); 
        } 
      } 

speranza per aiutare la cura di qualcuno su questo problema!

0

È possibile lasciare 4-7 passaggi se: il flusso del monitor della trasmissione è stato disabilitato impostando contentDetails.monitorStream.enableMonitorStream proprietà a false durante la creazione o l'aggiornamento di quella trasmissione.

Problemi correlati