Python:使用 google 提供的代码片段无法将视频上传到 youtube

Python: Uploading video to youtube using google provided code snippet does not work

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

所以给定的代码 here (upload_video.py) 应该可以工作,我已经按照设置进行操作,其中包括启用 Youtube API 和获取 OAuth 密钥等等不是。您可能会注意到代码在 Python 2 中,所以我使用 2to3 使其成为 运行 和 python3.7。问题是由于某种原因,我在执行 upload_video.py:

时被要求登录

现在这不应该发生,因为这是拥有 client_secrets.json 文件的全部意义所在,您不需要显式登录。所以一旦我退出这个 in-shell 浏览器,这就是我看到的:

这是第一行:

/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'

所以基本上现在我已经走到了死胡同。关于现在该做什么的任何想法?

参见upload_video.py中函数get_authenticated_service的代码:您不应该自己创建文件upload_video.py-oauth2.json!此文件是在 get_authenticated_service.

内通过调用 run_flow 完成 OAuth2 流程后创建的

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