YouTube Data API v3:无需打开浏览器即可从服务器上传视频

Posted

技术标签:

【中文标题】YouTube Data API v3:无需打开浏览器即可从服务器上传视频【英文标题】:YouTube Data API v3: video upload from server without opening the browser 【发布时间】:2020-09-03 03:41:48 【问题描述】:

我正在尝试每天从我的服务器上传视频到我的帐户,但浏览器无法访问。我可以在我的桌面上执行此操作,通过运行下面提到的脚本打开浏览器,询问我的权限并完成上传视频所需的完整授权,然后上传视频。

python upload_video.py --file clips/concatenated.mp4 --title testing --desc empty_dec

/Users/devansh.dalal/Desktop/hackathon/tiktoki/venv/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))

Your browser has been opened to visit:

    https://accounts.google.com/o/oauth2/auth?client_id=73183172161-48495o1tqgjgih3v7j218av2bghdcm30.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.upload&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

  --noauth_local_webserver

Authentication successful.
Uploading file...

但我想要一个不需要手动授权脚本的解决方案,因为我的服务器是完全安全的。请给点建议?

【问题讨论】:

【参考方案1】:

首先请注意,上传视频所需的 API 授权与服务器的安全级别无关。您可以阅读文档OAuth 2.0 for Mobile & Desktop Apps,了解有关独立计算机上授权流程的详细信息。

文档指定steps 4 和step 5。通过初始 OAuth 流程,您将获得两个令牌:一个短期访问令牌和一个按需生成访问令牌的刷新令牌。 没有浏览器的身份验证是不可能的,但是一旦有了刷新令牌,就可以通过编程方式交易访问令牌:

    初始化:通过浏览器认证获取刷新令牌;

    迭代:根据需要多次向 API 查询访问令牌——无需任何浏览器交互! -- 使用 (1) 中的刷新令牌,然后继续调用目标 API 端点(同样,没有任何浏览器交互)。

请注意,步骤 (1) 和 (2) 可以很好地分开,以便 (1) 由将刷新令牌存储到文件中的独立(本地)计算机执行;稍后,在另一台远程计算机(例如,未安装浏览器的服务器)上安全传输该文件后,在该远程计算机上执行 (2),根据需要重复执行 (见Using OAuth 2.0 for server-side, standalone scripts。)

【讨论】:

以上是关于YouTube Data API v3:无需打开浏览器即可从服务器上传视频的主要内容,如果未能解决你的问题,请参考以下文章

使用 Youtube Api v3 和 oauth2 将视频上传到我的 Youtube 频道,无需用户身份验证

php Youtube Data API v3

Youtube API v3 data.search 返回相同的值

如何使用 YouTube Data API v3 更改页面结果

使用 YouTube Data API v3 确定 YouTube 频道的上传速率

YouTube Data API V3:获取多个 videoCategoryId 视频