使用Python代码更新上传视频到YouTube

1 投票
1 回答
36 浏览
提问于 2025-04-13 17:21

官方的YouTube文档关于用Python上传视频的部分,如果你想要进行非本地认证的话,已经坏掉了。之前使用的oauth2client方法现在已经不被谷歌接受了,因为它用了一种过时的“流程”/认证方式。

如果你尝试运行下面的代码,并用给出的测试代码进行非本地认证,就会出现“错误400:无效请求”的提示。

ethan@myTerminal % python upload.py --file="/home/work/shared/ethan/yt-auto-upload/recordings/test/test_video.mp4" --title="一段很棒的视频" --description="欢迎" --keywords="游戏" --category="28" --privacyStatus="公开" --noauth_local_webserver

请在浏览器中打开以下链接:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.upload&redirect_uri=myURN&response_type=code&client_id=myID

输入验证码:

oauth2client提供的解决办法是切换到使用oauthlib,但我不太确定如何重新创建“认证流程”,特别是如果我想用链接来进行认证(这样我就可以进行非本地认证)。

我查看了deviceClient类型API的文档,似乎可以使用页面底部的“prepare_request_uri”函数来创建一个有效的重定向URI。

如果能帮我把这些知识结合起来,创建一个可以正常工作的、更新版的YouTube自动视频上传工具,我将非常感激。

这个GitHub链接里有原始代码,已经更新到可以在Python 3上运行的“upload.py”,是YouTube创建的。 它还包含我正在进行中的版本“ethanupload.py”,但这个版本的认证不太正常。

1 个回答

0

如果你看到一个错误提示,上面写着“400 invalid_request”或者“访问被阻止:应用发送了无效请求”,这就说明这个应用使用了一种谷歌不允许的授权方式。谷歌有一些安全的方法,让你可以登录并与第三方应用和网站分享你的谷歌账号数据。

撰写回答