【发布时间】:2021-06-13 20:40:32
【问题描述】:
我尝试使用本指南在 youtube 上上传缩略图:https://developers.google.com/youtube/v3/docs/thumbnails/set
我能够使用这个 curl 在邮递员上成功运行它:
curl --location --request POST 'https://www.googleapis.com/upload/youtube/v3/thumbnails/set?videoId=<video id>' \
--header 'Authorization: OAuth <token>' \
--header 'Content-Type: image/png' \
--form 'thumbnail=@"/C:/Users/user/Pictures/nami.PNG"'
但是我在将其翻译成 js 时遇到了麻烦,到目前为止我所做的是:
// the "file" is the File from <input type="file"> - data on this looks ok
uploadThumbnail async (file) {
const formData = new FromData();
const formData.append('thumbnail', file, 'test.png');
await fetch.post('https://www.googleapis.com/youtube/v3/thumbnails/set', {
headers: {
Authorization: 'Oauth <token>',
'Content-Type': 'multipart/form-data' // I also tried using the file.type here (image/png)
},
query: {
videoId: <video id>
},
body: formData,
})
}
(为了简化逻辑,上面的代码我只是手动打出来的,如有错别字请见谅)
但这会抛出The request does not include the image content.我不明白,我也尝试将文件转换为Blob,但同样的错误。
【问题讨论】:
-
授权:承载
-
即使它确实有效,上面的
curl命令也不属于 YouTube 数据 API 的记录行为。 propercurl命令可以在我最近在这个论坛上提供的答案中看到:Upload thumbnail to Youtube API using curl。 -
从引用的答案中,您可以很容易地得出对
Thumbnails.set端点的正确 JS 调用。 -
@stvar 是哪一个?
-
您还可以阅读以下答案以了解如何使用 JS 的
fetchAPI 上传文件:How do I upload a file with the JS fetch API?。
标签: javascript curl youtube-api fetch youtube-data-api