YouTube 数据 API v3:无需打开浏览器即可从服务器上传视频
YouTube Data API v3: video upload from server without opening the browser
我正在尝试每天从我的服务器上传视频到我的帐户,但浏览器无法访问。我可以在我的桌面上完成,通过 运行 下面提到的脚本打开浏览器,询问我的权限并完成上传视频所需的完整授权,然后上传视频。
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...
但我想要一个不需要手动授权脚本的解决方案,因为我的服务器是完全安全的。有什么建议吗?
首先请注意,API上传视频所需的授权与您服务器的安全级别无关。您可以阅读文档 OAuth 2.0 for Mobile & Desktop Apps 以获取有关独立计算机上授权流程的完整信息。
文档指定 steps 4 and step 5。通过初始 OAuth 流程,您将获得两个令牌:一个短期访问令牌和一个按需生成访问令牌的刷新令牌。 无法在没有浏览器的情况下进行身份验证,但一旦拥有刷新令牌,就可以通过编程方式将其交易为访问令牌:
初始化:通过浏览器认证获取刷新令牌;
迭代:根据需要多次查询 API 访问令牌——无需任何浏览器交互! -- 使用 (1) 中的刷新令牌,然后继续调用目标 API 端点(同样,没有任何浏览器交互)。
请注意,步骤 (1) 和 (2) 可以很好地分开,以便 (1) 由将刷新令牌存储到文件中的独立(本地)计算机执行;稍后,在另一台远程计算机(例如未安装浏览器的服务器)上安全传输该文件后,根据需要在该远程计算机上重复执行 (2)
(参见 Using OAuth 2.0 for server-side, standalone scripts。)
我正在尝试每天从我的服务器上传视频到我的帐户,但浏览器无法访问。我可以在我的桌面上完成,通过 运行 下面提到的脚本打开浏览器,询问我的权限并完成上传视频所需的完整授权,然后上传视频。
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...
但我想要一个不需要手动授权脚本的解决方案,因为我的服务器是完全安全的。有什么建议吗?
首先请注意,API上传视频所需的授权与您服务器的安全级别无关。您可以阅读文档 OAuth 2.0 for Mobile & Desktop Apps 以获取有关独立计算机上授权流程的完整信息。
文档指定 steps 4 and step 5。通过初始 OAuth 流程,您将获得两个令牌:一个短期访问令牌和一个按需生成访问令牌的刷新令牌。 无法在没有浏览器的情况下进行身份验证,但一旦拥有刷新令牌,就可以通过编程方式将其交易为访问令牌:
初始化:通过浏览器认证获取刷新令牌;
迭代:根据需要多次查询 API 访问令牌——无需任何浏览器交互! -- 使用 (1) 中的刷新令牌,然后继续调用目标 API 端点(同样,没有任何浏览器交互)。
请注意,步骤 (1) 和 (2) 可以很好地分开,以便 (1) 由将刷新令牌存储到文件中的独立(本地)计算机执行;稍后,在另一台远程计算机(例如未安装浏览器的服务器)上安全传输该文件后,根据需要在该远程计算机上重复执行 (2) (参见 Using OAuth 2.0 for server-side, standalone scripts。)