Использовать Youtube Analytics API без Oauth2 через Python?

Я хочу автоматически получать некоторые аналитические данные о нашем контенте на нашем канале Youtube, такие как просмотры, лайки, среднее время просмотра, подписки по видео ... Поэтому я подписался на официальная документация Youtube Analytics, но когда я запускаю скрипт python, он постоянно говорит мне переходить по ссылке и вводить токен каждый раз, когда я запускаю скрипт. Проблема в том, что я хочу создать сценарий, который будет загружать все данные автоматически, без необходимости вводить токен при каждом его запуске. Я пробовал использовать ключ API, но токен все еще запрашивается.

Я читал, что Youtube Analytics работает только с Oauth2, есть ли способ получить эту информацию, не вводя токен каждый раз вручную? Если нет, могу ли я получить эти данные с помощью API данных YouTube?

Спасибо


person Ali Azzouz    schedule 24.12.2020    source источник
comment
Вот ответ на ваш вопрос: Как обойти ввод кода аутентификации для авторизации моего кода каждый раз, когда я использую API данных YouTube v3 . Этот код относится к любому API Google, использующему OAuth2.   -  person stvar    schedule 24.12.2020
comment
@stvar К сожалению, с этим методом вам нужно создать рассол для хранения токена, но когда срок действия токена истечет, вам все равно придется снова перейти по ссылке авторизации OAuth. Означает ли это, что у нас нет возможности напрямую с помощью API консоли Google запрашивать Youtube Analytics, поскольку мы можем запрашивать Google Analytics только с помощью ключа API, не нажимая ссылку для генерации токена каждый раз?   -  person Ali Azzouz    schedule 05.01.2021
comment
Позвольте мне немного прокомментировать функцию create_service, определенную в моем ответе, который я цитировал выше (я делаю это, надеясь, что ее работа станет более ясной). Во-первых, обратите внимание, что файл pickle фактически содержит два разных токена: (долгоживущий) токен обновления и (недолговечный; обычно действительный в течение часа) токен доступа. Маркер обновления инициализируется после успешной аутентификации / авторизации OAuth и после инициализации не изменяется: flow = InstalledAppFlow.from_client_secrets_file(client_secret_file, scopes); cred = flow.run_console().   -  person stvar    schedule 05.01.2021
comment
Токен доступа обновляется при необходимости на основе инвариантного токена обновления: cred.refresh(Request()). Обновление токена доступа выполняется вне любого потока OAuth. Маркер доступа - это конкретные данные учетных данных, которые передаются каждому вызову API, отправляемому через объект youtube, полученный от create_service. Важно отметить следующий факт: после того, как вы успешно прошли поток OAuth (таким образом, получив токен обновления, который сохраняется в первом файле pickle), последующие вызовы create_service не будут инициировать другие потоки OAuth.   -  person stvar    schedule 05.01.2021
comment
Это потому, что второй (третий и т. Д.) Вызов create_service будет делать следующее: (1) читать файл pickle; (2) проверить, истек ли срок действия сохраненного токена доступа (при необходимости обновив его); (3) сохранить текущий объект учетных данных в файле pickle. Вызов create_service во второй (третий и т. Д.) Раз после успешного выполнения потока OAth не выполнит 'flow = InstalledAppFlow.from_client_secrets_file (...) `и cred = flow.run_local_server().   -  person stvar    schedule 05.01.2021
comment
Согласно официальным документам, (цитата ): Получение отчетов YouTube Analytics: Шаг 1. Получение учетных данных для авторизации: все запросы YouTube Reporting API должны быть авторизованы. В руководстве по авторизации объясняется, как использовать протокол OAuth 2.0 для получения токенов авторизации.   -  person stvar    schedule 05.01.2021
comment
Таким образом, вы не можете использовать ключ API для доступа к YouTube Analytics API. Также вы должны обратить внимание на то, что вы установили правильные области авторизации.   -  person stvar    schedule 05.01.2021