Youtube API-终端尝试打开浏览器并失败

时间:2018-09-26 11:45:31

标签: python macos api terminal youtube

我正在尝试使用Youtube的API和Python3构建项目。 如Quick Start guide中所述:

  

该示例尝试在默认浏览器中打开一个新窗口或一个选项卡。如果失败,请从控制台复制URL,然后在浏览器中手动打开它。

我正在使用运行脚本的MacOS Terminal,但确实需要将URL复制到浏览器中。

我想问题出在我的机器上,我想找到一种解决方案,因为它每次运行脚本时都会更快,更轻松。

我试图找到类似的线程,但是没有运气。 如果任何人都可以指导我,或给我发送链接,以了解如何解决此问题。

谢谢, 耶夫。

2 个答案:

答案 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的帮助。