我有一个Python脚本,可以按照文档上传视频和缩略图,并且它可以工作。我想对其进行调整以上传字幕或字幕。遵循这个要点,看起来很简单:
youtube = get_authenticated_service(args)
def upload(youtube, filepath, language, video_id):
youtube.captions().insert(
part="snippet",
body={
"snippet": {
"videoId": video_id,
"language": language,
"name": "Subtitles"
}
},
media_body=filepath
).execute()
此代码失败并出现以下错误:
{
"error": {
"code": 403,
"message": "Request had insufficient authentication scopes.",
"errors": [
{
"message": "Insufficient Permission",
"domain": "global",
"reason": "insufficientPermissions"
}
],
"status": "PERMISSION_DENIED"
}
}
所以我尝试授权我的应用程序有字幕的权限。 [文档] 建议这些范围:
授权
此请求需要至少具有以下范围之一的授权(阅读有关身份验证和授权的更多信息)。
范围
https://www.googleapis.com/auth/youtube.force-ssl https://www.googleapis.com/auth/youtubepartner
我认为我无法授予自己 YouTube 合作伙伴的身份,而且我不明白 SSL 与此有什么关系。
当我在顶部栏搜索“范围”时,我的应用程序的 Google Cloud Console 仪表板没有显示任何结果。当我搜索“OAuth”时,我看到了
Enabled APIs and services
和 Credentials
的页面,但没有看到范围。
如何让已上传视频和缩略图的应用程序也上传字幕?
根据 API 文档,至少需要您列出的范围之一:
范围 https://www.googleapis.com/auth/youtube.force-ssl https://www.googleapis.com/auth/youtubepartner
要将它们添加到您的项目中,请打开您的 OAuth 同意屏幕,您将在第二页中找到范围。搜索 youtube,您将在其中找到两个范围,如以下屏幕截图所示。
正如您所提到的,我还认为如果您要将字幕添加到自己的频道,则不需要 youtubepartner 范围。我建议您首先添加force-ssl,看看它是否有效,如果无效,则将 youtubepartner 范围添加到您的应用程序中。