Youtube API - попытка терминала открыть браузер не удалась - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь построить проект с использованием API YouTube и Python3.Как упомянуто в Краткое руководство по началу работы :

Пример пытается открыть новое окно или вкладку в браузере по умолчанию.Если это не удается, скопируйте URL-адрес из консоли и вручную откройте его в браузере.

Я использую терминал MacOS, который запускает скрипт, но мне действительно нужно скопировать URL-адрес в мой браузер.

Полагаю, проблема в моей машине, и я хотел бы найти решение, как ее исправить, так как это будет быстрее и проще, каждый раз, когда я запускаю скрипт.

Я пытался найти аналогичную тему, но не повезло.Если кто-нибудь может мне помочь или отправить ссылку, как решить эту проблему.

Спасибо, Йоав.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Решение ( source ):

Я использовал run_console (), которая не пытается запустить браузер, но просит клиента открыть его вручную.Чтобы он автоматически запускал браузер, следует использовать метод run_local_server () , как показано в примере ниже.

Функция run_console инструктируетпользователь, чтобы открыть URL авторизации в своем браузере .После того как пользователь авторизует приложение, сервер авторизации отображает веб-страницу с кодом авторизации, который пользователь затем вставляет в приложение.Библиотека авторизации автоматически обменивает код для токена доступа.

credentials = flow.run_console()

Функция run_local_server пытается открыть авторизациюURL в браузере пользователя. Он также запускает локальный веб-сервер для прослушивания ответа на авторизацию.После того как пользователь завершает поток авторизации, сервер авторизации перенаправляет браузер пользователя на локальный веб-сервер.Этот сервер получает код авторизации из браузера и завершает работу, а затем обменивает код для токена доступа.

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 за помощь.

0 голосов
/ 26 сентября 2018

Вам необходим набор переменных среды BROWSER.Это указывает на местоположение браузера.

Используйте getenv BROWSER, чтобы увидеть, установлен ли он уже

* Команда может отличаться в зависимости от версии Mac OS

...