Python:使用Google提供的代码段将视频上传到youtube不起作用

问题描述 投票:2回答:1

我正在尝试使用python脚本将视频上传到Youtube。

因此,给定的here(upload_video.py)代码应该可以正常工作,并且我遵循了包括启用Youtube API以及获取OAuth秘密密钥的设置。您可能会注意到代码是在Python 2中编写的,因此我使用2to3使其与python3.7一起运行。问题是由于某种原因,我在执行upload_video.py时要求登录:

enter image description here

现在不应该发生这种情况,因为这就是拥有client_secrets.json文件的全部要点,您无需显式登录。因此,一旦退出此内置浏览器,就会看到以下内容:

enter image description here

这是第一行:

/usr/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access upload_video.py-oauth2.json: No such file or directory
  warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

现在,我不明白为什么需要与upload_video.py文件中一样的upload_video.py-oauth2.json,oauth2秘密文件设置为“ client_secrets.json”。

无论如何,我创建了文件upload_video.py-oauth2.json并将client_secrets.json的内容复制到其中。当时我没有得到奇怪的登录信息,但是又遇到了另一个错误:

Traceback (most recent call last):
  File "upload_video.py", line 177, in <module>
    youtube = get_authenticated_service(args)
  File "upload_video.py", line 80, in get_authenticated_service
    credentials = storage.get()
  File "/usr/lib/python3.7/site-packages/oauth2client/client.py", line 407, in get
    return self.locked_get()
  File "/usr/lib/python3.7/site-packages/oauth2client/file.py", line 54, in locked_get
    credentials = client.Credentials.new_from_json(content)
  File "/usr/lib/python3.7/site-packages/oauth2client/client.py", line 302, in new_from_json
    module_name = data['_module']
KeyError: '_module'

所以基本上现在我已经死胡同了。关于现在该怎么办?

python python-3.x google-api youtube-data-api
1个回答
1
投票

请参阅get_authenticated_service中的功能upload_video.py的代码:您不应自己创建文件upload_video.py-oauth2.json!该文件是在OAuth2流完成时通过调用run_flow中的get_authenticated_service创建的。

此外,您也可以阅读文档OAuth 2.0 for Mobile & Desktop Apps,以获得有关独立计算机上的授权流的详尽信息。

© www.soinside.com 2019 - 2024. All rights reserved.