我使用YouTube Data API v3成功上传视频到YouTube。没有使用第三方库。现在我想更新一个上传视频的标题和描述,但这似乎是不可能的!
这应该是一个很简单的问题,但是YouTube拒绝接受这个简单的查询:
curl --insecure -v -i -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer ACCESS_TOKEN_FROM_GOOGLE_HERE" -d '{"id":"YOUTUBE_VIDEO_ID_HERE","snippet":{"title":"My title","description":"My description","categoryId":"22"}}' "https://www.googleapis.com/youtube/v3/videos?part=snippet"
即使我非常确定视频确实存在,YouTube服务器也会这样响应:
{
"error": {
"errors": [
{
"domain": "youtube.video",
"reason": "videoNotFound",
"message": "The video that you are trying to update cannot be found. Check t
he value of the u003ccodeu003eidu003c/codeu003e field in the request body to
ensure that it is correct.",
"locationType": "other",
"location": "body.id"
}
],
"code": 404,
"message": "The video that you are trying to update cannot be found. Check the
value of the u003ccodeu003eidu003c/codeu003e field in the request body to e
nsure that it is correct."
}
}
谁能告诉我低级命令(不能使用第三方库)成功更新上传视频的标题和描述?最好使用curl。
更新:
我可以使用delete API删除文件。因此,ID确实是正确的。
看起来你可能错过了"kind"的值
curl --insecure -v -i -X PUT -H "Content-Type: application/json" -H "Authorization: Bearer ACCESS_TOKEN_FROM_GOOGLE_HERE" -d '{"id":"YOUTUBE_VIDEO_ID_HERE","kind":"youtube#video","snippet":{"title":"My title","description":"My description","categoryId":"22"}}' "https://www.googleapis.com/youtube/v3/videos?part=snippet"
不知道为什么,但是如果我包括实际上传的整个json
响应,它就可以工作了。也就是说,为了更新描述,我执行以下操作:
- 上传视频。
- 等待响应
- 解析json响应并替换描述文本
- 用新的json更新视频
因此,使用剥离的json更新似乎不起作用。