使用curl将缩略图上传到Youtube API
我正在使用curl和YouTube API v3创建广播、修改视频标题等,没有任何问题。我的问题是,当我试图使用谷歌提供的工具为视频添加缩略图时 以下是出于安全原因更改密钥的示例:使用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 --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 ....