更新 youtube 视频的发布日期
update publishAt date of a youtube video
我正在尝试将 YouTube 视频的发布日期设置为从现在起 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 对此进行了测试,响应相同。
要在上传方法中更改一个字段,你必须把你得到的所有其他字段都放进去,否则更新方法会认为你试图清空它们。
在您的情况下,您应该在 PUT 请求中包含 "license" 和 "publicStatsViewable",就像从 "GET" 请求中获取它们一样。
问题是我将 publishAt 设置得太接近当前时间(5 分钟)。60 分钟有效。
在我看来,这应该得到更好的记录,UPDATE 调用应该 return 类似于 INSERT (badRequest (400) invalidPublishAt)
的错误
我正在尝试将 YouTube 视频的发布日期设置为从现在起 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 对此进行了测试,响应相同。
要在上传方法中更改一个字段,你必须把你得到的所有其他字段都放进去,否则更新方法会认为你试图清空它们。
在您的情况下,您应该在 PUT 请求中包含 "license" 和 "publicStatsViewable",就像从 "GET" 请求中获取它们一样。
问题是我将 publishAt 设置得太接近当前时间(5 分钟)。60 分钟有效。
在我看来,这应该得到更好的记录,UPDATE 调用应该 return 类似于 INSERT (badRequest (400) invalidPublishAt)
的错误