更新发布YouTube视频的日期

时间:2015-01-20 21:37:58

标签: youtube-api

我试图将youtube视频的publishAt日期设置为从现在开始的5分钟:

请求

GET https://www.googleapis.com/youtube/v3/videos?part=status&id=_VIDEOID_&key=_KEY_

Authorization:  Bearer xxxxx
X-JavaScript-User-Agent:  Google APIs Explorer

响应

200 OK

{
 - snip-
 "items": [
  {

   "kind": "youtube#video",
   "etag": "\"F9iA7pnxqNgrkOutjQAa9F2k8HY/ctlUM3pGyXYfW6_IYy2nlhviZZ4\"",
   "id": "_VIDEOID_",
   "status": {
    "uploadStatus": "processed",
    "privacyStatus": "private",
    "license": "youtube",
    "embeddable": true,
    "publicStatsViewable": true
   }
  }
 ]
}

很好,我收到视频信息,然后我尝试设置视频的publishAt值

请求

PUT https://www.googleapis.com/youtube/v3/videos?part=status&key=_KEY_

Content-Type:  application/json
Authorization:  Bearer xxxx
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "status": {
   "embeddable": true,
   "license": "youtube",
   "privacyStatus": "private",
   "publicStatsViewable": true,
   "publishAt": "2015-01-21T11:20:27.751+00:00"
 },
 "id": "_VIDEOID_"
}

响应

400 Bad Request

{
 "error": {
  "errors": [
   {
    "domain": "youtube.video",
    "reason": "invalidRequest",
    "message": "Bad Request"
   }
  ],
  "code": 400,
  "message": "Bad Request"
 }
}

任何线索?

我无法看清我做错了什么。文档说我应该能够设置publishAt值。我无法解决这个问题!

我已使用https://developers.google.com/youtube/v3/docs/videos/update和C#API对此进行了相同的响应测试。

2 个答案:

答案 0 :(得分:2)

问题在于我将publishAt设置得太接近当前时间(5分钟).60分钟工作。

在我看来,这应该更好地记录,并且UPDATE调用应该返回类似于INSERT的错误(badRequest(400)invalidPublishAt)

答案 1 :(得分:1)

要更改上传方法中的字段,您必须放置所有其他字段,否则更新方法会认为您正在尝试清空它们。

在您的情况下,您应该在PUT请求中包含“license”和“publicStatsViewable”,就像从“GET”请求中获取它们一样。