обновить статус конфиденциальности прямой трансляции YouTube

Я пытаюсь обновить статус конфиденциальности LiveBroadcast в scala (используя java jdk). Это мой рабочий процесс:

Создайте прямую трансляцию со статусом конфиденциальности private

val snippet = new LiveBroadcastSnippet()
    .setTitle(title)
    .setScheduledStartTime(YouTubeDateTime.now())
    .setChannelId(channel.getId)

val status = new LiveBroadcastStatus()
  .setPrivacyStatus("private")

val broadcast = new LiveBroadcast()
  .setKind("youtube#liveBroadcast")
  .setSnippet(snippet)
  .setStatus(status)

val request = youtube.liveBroadcasts()
  .insert("snippet,status,contentDetails", broadcast)

request.execute

Переключите LiveBroadcast на testing (если связанный LiveStream активен)

val request = youtube.liveBroadcasts
    .transition(lifeCycleStatus.toString, broadcast.getId, "status")

request.execute

Когда вы будете довольны трансляцией, установите для параметра конфиденциальности LiveBroadcast значение public.

val status = new LiveBroadcastStatus().setPrivacyStatus("public")

broadcast.setStatus(status)

val request = youtube.liveBroadcasts.update("status", broadcast)

request.execute()

Последняя часть не работает, вместо этого возвращает ответ 400:

400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "youtube.part",
    "location" : "part",
    "locationType" : "parameter",
    "message" : "{0}",
    "reason" : "unexpectedPart"
  } ],
  "message" : "{0}"
}

Выполнение того же запроса здесь работает, поэтому я не уверен что я делаю неправильно.

Кто-нибудь может помочь?


person akash1810    schedule 17.09.2016    source источник


Ответы (1)


Я могу ошибаться, но я думаю, что вы также должны добавить параметр id в свой запрос LiveBroadcast. Это ID, который YouTube назначает для уникальной идентификации трансляции.

Вы можете следовать рекомендациям по созданию прямой трансляции и управлению ею, как описано в Жизнь трансляции, где также упоминалось, что при обработке ответа API при настройке трансляции:

Ваш код должен извлечь и сохранить id из этого ресурса, так как это значение понадобится вам для идентификации трансляции в будущих запросах API. (Вы также можете идентифицировать видеоресурс, который соответствует ресурсу liveBroadcast, используя тот же ID.)

Кроме того, возникла ошибка 400 Bad Request с указанными данными unexpectedPart, как описано в разделе ошибок распространенных запросов в API данных YouTube – ошибки означает, что:

Параметр части запроса указывает неожиданное значение.

person Teyam    schedule 19.09.2016