我正在尝试更新scala中LiveBroadcast的隐私状态(使用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}"
}
执行相同的请求here有效,所以我不确定我做错了什么。
有人可以帮忙吗?
答案 0 :(得分:0)
我可能错了,但我认为您还应该在LiveBroadcast请求中添加id
参数。这是YouTube为唯一标识广播而分配的ID
。
您可能需要遵循Life of a Broadcast中讨论的有关如何创建和管理直播的指导原则,其中还提到了在设置广播时处理API响应:
您的代码应该从该资源中提取并存储
id
,因为您需要该值来识别未来API请求中的广播。 (您还可以使用相同的ID
标识与liveBroadcast资源对应的视频资源。)
除此之外,遇到指定详细信息400 Bad Request
的错误unexpectedPart
,如YouTube Data API - Errors中的常见请求错误所述,意味着:
请求的part参数指定了一个意外的值。