我想使用 R 更新我的 YouTube 视频的缩略图。 我正在关注 google 文档,但出现以下错误:
"The request does not include the image content."
我的代码的当前状态如下:
library(httr)
library(tuber)
video.id <- [ID]
thumbnail.path <- [path]
youtube.client.id <- [ID]
youtube.client.secret <- [secret]
yt_oauth(
app_id = youtube.client.id,
app_secret = youtube.client.secret,
scope = 'partner'
)
req <- POST(
"https://www.googleapis.com",
path = paste0(
"youtube/v3/thumbnails/set",
"?videoId=", video.id
),
body = httr::upload_file(thumbnail.path),
config(token = getOption("google_token"))
)
我对其他 API 调用(使用 PUT 或 GET)有类似的查询,并且它们有效。 我认为问题出在
upload_file
,但找不到应该解决的方案。
我该如何解决这个问题? 预先感谢
如果有人有同样的问题,我设法解决它。我已经尝试了很多方法,但我认为真正解决的方法是将网址从“youtube/v3/thumbnails/set”更改为“upload/youtube/v3/thumbnails/set”。
这是我的最终代码:
oauth <- paste0('"Authorization: Bearer ', access.token, '"')
full.url <- paste0(
'https://www.googleapis.com/upload/youtube/v3/thumbnails/set',
'?videoId=', video.id,
'&key=', youtube.api.key,
'&uploadType=media'
)
final.args <- c(
'--request', 'POST',
'-v', paste0('"', full.url, '"'),
'--data-binary', paste0('@', cover.path, ''),
'-H', oauth,
'-H', '"Content-Type: image/png"'
)
system2(
command = 'curl',
args = final.args,
stdout = file.res, stderr = file.err
)