我正在尝试使用Youtube的API和Python3构建项目。 如Quick Start guide中所述:
该示例尝试在默认浏览器中打开一个新窗口或一个选项卡。如果失败,请从控制台复制URL,然后在浏览器中手动打开它。
我正在使用运行脚本的MacOS Terminal,但确实需要将URL复制到浏览器中。
我想问题出在我的机器上,我想找到一种解决方案,因为它每次运行脚本时都会更快,更轻松。
我试图找到类似的线程,但是没有运气。 如果任何人都可以指导我,或给我发送链接,以了解如何解决此问题。
谢谢, 耶夫。
答案 0 :(得分:1)
您需要一个BROWSER环境变量集。这指向浏览器的位置。
使用getenv浏览器查看它是否已设置
*命令可能会因Mac OS版本而异
答案 1 :(得分:1)
解决方案(source):
我使用过run_console(),它不会尝试运行浏览器,而是要求客户端手动打开它。 要使其自动运行浏览器,您应该使用run_local_server()方法,如下例所示。
run_console函数指示用户打开授权 他们浏览器中的网址。用户授权应用程序后, 授权服务器显示带有授权码的网页, 然后用户将其粘贴到应用程序中。授权 库会自动将代码交换为访问令牌。
credentials = flow.run_console()
run_local_server 函数尝试在用户的浏览器中打开授权URL。 启动本地Web服务器以侦听授权响应。 用户完成身份验证流程后,授权服务器 将用户的浏览器重定向到本地Web服务器。该服务器获取 来自浏览器的授权代码,然后关闭,然后进行交换 访问令牌的代码。
credentials = flow.run_local_server(host='localhost',
> port=8080,
> authorization_prompt_message='Please visit this URL: {url}',
> success_message='The auth flow is complete; you may close this window.',
> open_browser=True)
谢谢@Hassan Voyeau的帮助。