更新YouTube直播流隐私状态



我正在尝试更新scala中的LiveBroadcast的隐私状态(使用java jdk)。这是我的工作流程:

创建private隐私状态的LiveBroadcast

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

将直播切换到testing(如果绑定的直播是活动的)

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

一旦满意的流,设置直播隐私为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}"
}

在这里做同样的请求工作,所以我不确定我做错了什么。

有人能帮忙吗?

我可能是错的,但我认为你也应该在你的直播请求中添加id参数。这是YouTube分配的唯一标识广播的ID

你可能想要遵循关于如何创建和管理直播的指导方针,就像在广播的生命周期中讨论的那样,其中也提到了在处理API响应时设置你的广播:

您的代码应该从该资源中提取并存储id,因为您将需要该值来识别未来API请求中的广播。(您也可以使用相同的ID识别与直播资源对应的视频资源。)

除此之外,遇到错误400 Bad Request与指定的细节unexpectedPart,从常见的请求错误描述在YouTube数据API -错误,意味着:

请求的部分参数指定了一个意外值。

相关内容

  • 没有找到相关文章

最新更新