使用curl将缩略图上传到Youtube API

使用curl将缩略图上传到Youtube API,curl,youtube-api,youtube-data-api,Curl,Youtube Api,Youtube Data Api,我正在使用curl和YouTube API v3创建广播、修改视频标题等,没有任何问题。我的问题是,当我试图使用谷歌提供的工具为视频添加缩略图时 以下是出于安全原因更改密钥的示例: curl --request POST -v \ "https://youtube.googleapis.com/youtube/v3/thumbnails/set\ ?videoId=RoZypUhZY04\ &uploadType=media\ &key=mykey" \

我正在使用curl和YouTube API v3创建广播、修改视频标题等,没有任何问题。我的问题是,当我试图使用谷歌提供的工具为视频添加缩略图时

以下是出于安全原因更改密钥的示例:

curl --request POST -v \
  "https://youtube.googleapis.com/youtube/v3/thumbnails/set\
?videoId=RoZypUhZY04\
&uploadType=media\
&key=mykey" \
  --header 'Authorization: Bearer my_access_token' \
  --header 'Content-Type: image/jpeg'\
  -F 'file=@/Users/adviner/Projects/Prototypes/VendorAPI/source/YouTube/YouTube-BOS.jpg'\
  -F 'filename=YouTube-BOS.jpg'
我试过:

-F 'image=@/Users/adviner/Projects/Prototypes/VendorAPI/source/YouTube/YouTube-BOS.jpg'\
在文档中,说明使用以下URL发布图像:

https://www.googleapis.com/upload/youtube/v3/thumbnails/set
但当您查看样本时,它会说要使用:

https://youtube.googleapis.com/youtube/v3/thumbnails/set
我尝试了这两种方法,似乎图像已正确上载,但我发现以下错误:

对于第一个URL:

使用URL时:

你知道我遗漏了什么吗


谢谢

您必须使用以下网址:

https://www.googleapis.com/upload/youtube/v3/thumbnails/set

根据我的经验,示例代码页不是百分之百可靠的(例如,API端点也有同样的问题)

您必须发出以下
curl
调用:

curl——请求POST-v\
"https://www.googleapis.com/upload/youtube/v3/thumbnails/set\
?videoId=RoZypUhZY04\
&上载类型=媒体“\
--标题“授权:承载我的\u访问\u令牌”\
--标题“内容类型:图像/jpeg”\
--数据二进制'@/Users/adviner/Projects/prototype/VendorAPI/source/YouTube/YouTube BOS.jpg'

请注意,上面的调用没有使用两个
-F
选项(表单选项),而是使用一个
--data binary
选项,其参数以
@
开头,以指示参数的其余部分是文件名。

您必须使用打开的URL:

https://www.googleapis.com/upload/youtube/v3/thumbnails/set

根据我的经验,示例代码页不是百分之百可靠的(例如,API端点也有同样的问题)

您必须发出以下
curl
调用:

curl——请求POST-v\
"https://www.googleapis.com/upload/youtube/v3/thumbnails/set\
?videoId=RoZypUhZY04\
&上载类型=媒体“\
--标题“授权:承载我的\u访问\u令牌”\
--标题“内容类型:图像/jpeg”\
--数据二进制'@/Users/adviner/Projects/prototype/VendorAPI/source/YouTube/YouTube BOS.jpg'

请注意,上面的调用使用一个
--data binary
选项,而不是两个
-F
选项(表单选项),其参数以
@
开头,以指示参数的其余部分是文件名。

对于postman http请求:

[张贴]

以二进制方式发送文件


邮递员http请求:

[张贴]

以二进制方式发送文件


谢谢您的更新。我修改了我的脚本,现在工作正常。谢谢你的更新。我修改了我的脚本,现在可以正常工作了。
{
  "error": {
    "code": 400,
    "message": "Media type 'image/jpeg; boundary=------------------------136ebfc0c8146cb8' is not supported. ",
    "errors": [
      {
        "message": "Media type 'image/jpeg; boundary=------------------------136ebfc0c8146cb8' is not supported. ",
        "domain": "global",
        "reason": "badRequest"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}
{
  "error": {
    "code": 400,
    "message": "The request does not include the image content.",
    "errors": [
      {
        "message": "The request does not include the image content.",
        "domain": "youtube.thumbnail",
        "reason": "mediaBodyRequired",
        "location": "body",
        "locationType": "other"
      }
    ]
  }
}
--headers:  Content-Type: image/jpeg
           Authorization: Bearer ....