2016-01-25 17 views
5

今、私は自分のYTブロードキャストをライブに移行するときに間違っていることを理解しようとしています。YoutubeのブロードキャストをYoutube APIを使用してライブにすることはできません

だから私は要求を作成し、次の応答を取得:もちろん

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

を私はドキュメントを何度も読んで私はライブストリームを監視してきましたし、その「アクティブ」状態を待っていた(と私ブロードキャストはlifeCycleStatus = "ready"です)。

エラーメッセージで実際の理由が説明されていないため、移行できません。
もちろん...私はYoutubeサーバーのログにアクセスできません:)

あなたは何をお勧めしますか?
どのように私が間違っているのか調べるには?

私が何かを見逃しても、ドキュメントとエラーメッセージは何かを理解するのに役立たない。とにかく、それは

+0

ライブブロードキャストを移行しようとしているときにリクエストを投稿できますか?おそらくあなたのパラメータの1つが間違っています。 – JAL

+0

残念ながら、私はすべてのHTTP要求がその.jarsによって行われたので、私から隠されているので、私はGoogleから.jarのトンを使用していました。おそらく、冗長モードなどをオンにするオプションがあります...とにかく、私はソリューションを見つけたので、ここに投稿します。 – rshmelev

答えて

10

... YTのLiveStreaming APIの「バグ」の一種であるので、ビットは不明ルールは次のとおりです。

  1. あなたが放送されているとライブストリームが作成され、準備ができて確実。
    とその放送のライフサイクルステータスがCOMPLETEないことを確認し、 それ以外の放送 を再作成...ので、あなたの放送のライフサイクルステータスが
  2. 待機をライブストリームする
  3. 開始公開映像をライブストリームする放送ready
  4. バインドされていることを確認ライブストリームステータスの場合active
  5. testingへの移行(はい、これはliveに移動する代わりに実行する必要があります)
  6. あなたは testingをスキップすることはできませんし、 testingまたは readycompleteから移行することはできません live

になるための放送lifeCycleStatusためlive

  • 待ちにtesting
  • 推移になるための放送lifeCycleStatusため
  • 待ちます。

  • +1

    これが当てはまるとは確信していません。ドキュメントはそうでない場合を指しているようです:https://developers.google.com/youtube/v3/live/docs/liveBroadcasts#contentDetails.monitorStream.enableMonitorStream –

    1

    私は同じ質問に遭遇し、最後に問題を発見しました。テストへのコマンドの移行後、lifeCycleStatusはliveStartingです。テストするにはlifeCycleStatusを待つ必要があります。だから我々は放送のステータスを取得する必要があります。誰かがこの問題を気にするのに役立つ

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

    希望: はここに私のコードです!

    0

    contentDetails.monitorStreamを設定すると、ブロードキャストのモニタストリームが無効になっている場合、4〜7ステップを離れることができます。enableMonitorStreamプロパティをfalseにすると、そのブロードキャストを作成または更新します。

    関連する問題