com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden — YouTube Live

Я новичок в API YouTube. Я создал и получил прямые трансляции на YouTube. Но я пытаюсь запустить живые события из своего приложения. Я получаю эту ошибку:

 com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
POST https://www.googleapis.com/youtube/v3/liveBroadcasts/transition?broadcastStatus=live&id=m0BCwKmG9Ws&key=AIzaSyCRiIM7Tdb_rqFcGSbQ0jXy0GeODCNSq4g&part=status
{
  "code": 403,
  "errors": [
    {
      "domain": "youtube.liveBroadcast",
      "message": "Stream is inactive",
      "reason": "errorStreamInactive",
      "extendedHelp": "https://developers.google.com/youtube/v3/live/docs/liveBroadcasts/transition"
    }
  ],
  "message": "Stream is inactive"
}

Код для запуска

fun startEvent(youtube: YouTube, broadcastId: String?) {
   
    val transitionRequest = youtube.liveBroadcasts().transition(
        "live", broadcastId, "status"
    )
    transitionRequest.key = context.getString(R.string.api_key)
    transitionRequest.execute()
}

Я также пробовал это, но все еще получаю ту же проблему. Я не знаю, что с ним не так?


person Τζιότι    schedule 15.04.2021    source источник


Ответы (2)


В соответствии с официальной спецификацией конечной точки API LiveBroadcasts.transition:

Перед вызовом этого метода необходимо убедиться, что значение status.streamStatus свойство потока, связанного с вашей трансляцией, равно active.

спецификация ошибок гласит:

forbidden (403) errorStreamInactive
Запрошенный переход не разрешен, если поток, привязанный к трансляции, неактивен.

Следовательно, ваша прямая трансляция, связанная с вашей прямой трансляцией, однозначно должна быть активной до вызова LiveBroadcasts.transition.

person stvar    schedule 15.04.2021
comment
подскажите, пожалуйста, как изменить статус прямой трансляции с предстоящей на активную? - person Τζιότι; 16.04.2021
comment
@Τζιότι: Ваша прямая трансляция становится активной, как только вы, как инициатор прямой трансляции, начинаете отправлять видеоконтент на конечную точку приема прямой трансляции YouTube. - person stvar; 16.04.2021
comment
@Τζιότι: обратите внимание, что ваш status.streamStatus не может быть upcoming: допустимые значения этого свойства: active, created, error, inactive и ready. - person stvar; 16.04.2021

Эта ошибка будет устранена путем включения автозапуска при создании события в прямом эфире.

val contentDetails = LiveBroadcastContentDetails()
contentDetails.set("enableAutoStart", true)
person Τζιότι    schedule 19.04.2021