我正在尝试使用youtube api,让用户上传我正在制作的网站上的视频。
这是我发送的请求(目前几乎与文档中的示例完全相同):
curl --request POST 'https://www.googleapis.com/youtube/v3/videos?part=snippet%2Cstatus&key=[MY-API-KEY]' \
-H 'authorization: Bearer [THE-USERS-ACCESS-TOKEN]' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'origin: http://localhost:1234' \
--data-raw '{"snippet":{"categoryId":"22","description":"Description of uploaded video.","title":"Test video upload."},"status":{"privacyStatus":"private"}}' \
--compressed
响应是一个缺少一些细节的错误:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"errors": [
{
"message": "Request contains an invalid argument.",
"domain": "global",
"reason": "badRequest"
}
],
"status": "INVALID_ARGUMENT"
}
}
我相信我的api密钥和凭据是可以的,因为我已经用其他方法(需要用户凭据)测试过它们,它们工作正常。
documentation并不清楚在哪里放置实际的视频文件的字节。我希望该方法返回一个可恢复的上传URL,但文档对此只字未提。它声明Accepted Media MIME类型为**video/和application/octet-stream*,但还声明您应该在请求正文中提供一个视频资源。并且所有示例都显示了json主体和内容类型...
这种方法应该如何工作?
1条答案
按热度按时间fhg3lkii1#
我相信你的目标如下。
在这种情况下,下面的curl命令示例如何?
为了使用YouTube API通过可恢复上传将视频文件上传到YouTube,需要完成以下2个过程。
1.检索位置URL。
作为第一步骤,检索用于上载视频数据的位置URL。
location: https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet%2Cstatus&upload_id=###
。视频数据使用此URL上载。2.上传视频数据。
作为第二步骤,使用检索到的位置URL上载视频数据。
请将
https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet%2Cstatus&upload_id=###
替换为您的URL。并且,请修改文件名。注:
multipart/form-data
上传视频文件,你也可以使用下面的curl命令。参考编号: