YouTube API ч.3.2 OAuth 2 авторизация на Python

В предыдущем видео про работу с YouTube API на Python я получил API Key, с которым уже можно работать с этим апи. С ним можно уже получать какую-то общедоступную информацию — лайки, просмотры, описания как каналов так и видео. Однако если я хочу загружать и/или изменять видео и/или канал, то мне нужно заморочиться с OAuth авторизацией.

Что такое OAuth авторизация в контексте YouTube API и зачем она если есть API Key

У каждой сущности в рамках API, будь то канал, видео или комментарий есть владелец который может эту сущность создавать, изменять или удалять. Мое приложение может быть инструментом позволяющим изменять эти сущности разным владельцам. Каждый владелец должен осознанно разрешить моему приложению делать строго определенный и ограниченный набор действий с принадлежащими ему сущностями. Для этого и нужна OAuth авторизация.

Порядок действий здесь таков:

  • в консоли Google Cloud Platform я должен подготовить страницу Соглашения с Пользователем (Consent Screen), где я должен описать что у меня за приложение и указать контакты админа. Пользователь должен иметь возможность идентифицировать мое приложение, чтобы осознанно решить давать ему права или нет.
  • получить в консоли OAuth Client ID. На одно приложение в рамках Google Cloud Platform, с одним API Key может быть выдано множество Client ID. Например для того чтобы наше приложение могло работать и на десктопе, и в вебе и на андроиде, а мы могли рулить этими айдишками по мере необходимости.
  • из приложения на Python, используя полученный Client ID я запрашиваю необходимые разрешения (указанные в SCOPES) у пользователя
  • сохраняю ответ пользователя — creds
  • использую полученные разрешения для работы с Google API от лица пользователя

Подробности и скринкаст в видео

Код скрипта на Python

Полезные ссылки