0

我試圖更新scala中的LiveBroadcast的隱私狀態(使用java jdk)。這是我的工作流程:更新YouTube的直播流隱私狀態

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(IFF綁定的視頻直播活動是活動的)

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

request.execute 

一旦高興與流創建LiveBroadcast,設置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

我可能是錯的,但我認爲你還應該在你的LiveBroadcast請求中加入id參數。 YouTube分配的ID用於唯一標識廣播。

您可能要按照有關如何創建的指導方針和管理作爲Life of a Broadcast討論,其中有人還提到,在處理API響應設置您的廣播時直播:

你應該代碼從該資源中提取並存儲id,因爲您將需要該值來識別未來API請求中的廣播。 (您也可以識別對應於使用相同ID的liveBroadcast資源的視頻資源。)

除此之外,遇到錯誤400 Bad Request使用指定詳細unexpectedPart,如YouTube Data API - Errors從共同請求的錯誤描述,意味着:

請求的部分參數指定了一個意外的值。