From 07263305b59a7c3275bc7e925f9ce6cabf774022 Mon Sep 17 00:00:00 2001 From: Andy Diamondstein Date: Thu, 26 Apr 2018 16:10:32 -0400 Subject: [PATCH] Add .py sample for calling YT Analytics API (v2) --- python/yt_analytics_v2.py | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 python/yt_analytics_v2.py diff --git a/python/yt_analytics_v2.py b/python/yt_analytics_v2.py new file mode 100644 index 00000000..47aa32e2 --- /dev/null +++ b/python/yt_analytics_v2.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- + +import os +import google.oauth2.credentials +import google_auth_oauthlib.flow +from googleapiclient.discovery import build +from googleapiclient.errors import HttpError +from google_auth_oauthlib.flow import InstalledAppFlow + +SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly'] + +API_SERVICE_NAME = 'youtubeAnalytics' +API_VERSION = 'v2' +CLIENT_SECRETS_FILE = 'YOUR_CLIENT_SECRET_FILE.json' +def get_service(): + flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES) + credentials = flow.run_console() + return build(API_SERVICE_NAME, API_VERSION, credentials = credentials) + +def execute_api_request(client_library_function, **kwargs): + response = client_library_function( + **kwargs + ).execute() + + print(response) + +if __name__ == '__main__': + # Disable OAuthlib's HTTPs verification when running locally. + # *DO NOT* leave this option enabled when running in production. + os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1' + + youtubeAnalytics = get_service() + execute_api_request( + youtubeAnalytics.reports().query, + ids='channel==MINE', + startDate='2017-01-01', + endDate='2017-12-31', + metrics='estimatedMinutesWatched,views,likes,subscribersGained' + dimensions='day', + sort='day' + )