iT邦幫忙

2021 iThome 鐵人賽

DAY 27
2
AI & Data

Python - 數位行銷分析與 Youtube API 教學系列 第 27

Youtube Reports API 教學 - 最後一次做 OAuth2.0 授權

「鮭魚均,因為一場鮭魚之亂被主管稱為鮭魚世代,廣義來說以年齡和臉蛋分類的話這應該算是一種 KNN 的機器學習,不正經的數據分析師,畢業後把人生暫停了半年,在 Google 和 AWS 辦過幾場演講,緩下腳步的同時找了份跨領域工作。偶而慢跑、愛跟小動物玩耍。曾立過很多志,最近是希望當一個有細節的人。」


Youtube Reports API 教學 - 最後一次做 OAuth2.0 授權

YouTube Reports API 能夠使開發人員安排報告的排程,並且批量下載生成報告。對於 YouTube Reports API 而言, API 支持預先所以定義好的報告內容,並且每個報告都包含一組針對頻道使用者或內容管理員 YouTube 資訊。靈活的追蹤每 Youtube 影片的影片資訊,也有了更加彈性的資料運用方式。這篇是 Python - 數位行銷的 Youtube 分析教學系列文章的第 27 篇,也是我參加 2021 iThome 鐵人賽中系列文章的第 27 天。

系列文章:Python — 數位行銷分析與 Youtube API 教學
昨日回顧:Youtube Analytics API 教學 - 告一個段落

關於 Google Cloud Platform

Google

在過去的內容已經有介紹過了,在這邊就簡單快速帶過 Google Cloud Platform,Google Cloud Platform 是由 Google 提供的雲端運算服務平台,提供了雲端運算平台服務與無伺服器運算環境,同性質的雲端平台也包含了 Amazon AWS,以及 Microsoft Azure 雲端平台,而因為 Youtube 本身隸屬於 Google 的子公司,Youtube API 在 Google Cloud Platform 平台也擁有較好的支援性與相容性,因此該系列文章會以 Google Cloud Platform 為主要的說明工具

串接 Youtube ReportingAPI

OAuth2.0 是一種管理第三方帳戶與 Google 連結方法,可以將某些第三方應用程式或服務連結到 Google 帳戶。當您將 Google 帳戶與第三方帳戶建立連結後,我們使用時就能夠利用 Python 來呼叫取用其資料, OAuth 授權就像視一種金鑰,使用 token 藉由 Google 來取得該名使用者所授權的資源。我們可以藉由Google Cloud Platform 和 Google 帳戶連動的的方式,直接利用 Google 登入 Google Cloud Platform 的主要介面平台,這裡用專案 "iThome-2021-This-is-Project" 來進行。

  • 選取專案 Select
    我們進行該專案的選取,我們在 Select Project 的地方可以看見 iThome-2021-This-is-Project 這個專案的內容換句話說也就是接下來的開發跟串接內容會在這個專案內進行。
  • 未設置過 Project 可以回到 Day2 開始:Youtube Data API - 簡介與建立 GCP 專案)
    https://ithelp.ithome.com.tw/articles/10266285

Day2

  • 進入 API Library
    當我們有需要在 Google Cloud Platform 存取或是呼叫 API 的使用需求時,我們能夠在 API Library 查看所有 Google Cloud Platform 支援的 API 文件資訊以及服務

Library

  • 開啟 Youtube Reporting API
    在 Library 中點選 YouTube ReportingAPI 後 進入內部將 API 打開(Enable),這樣就等於說有開放該 API 的使用權限了,ReportingAPI 的功能很簡單,就是檢索您的 YouTube 分析數據,與你個人帳戶有關的資料都會跟他相關。

Untitled

  • YouTube Analytics API key 的申請與使用
    開啟 Library 內的 API 後我們回到左方的選單,點選旁邊按鈕來到 OAuth 同意畫面 (consent screen),並且設定你的 OAuth consent screen。未設置過OAuth consent screen 可以回到 Day15 開始:Youtube Analytics API 教學 - OAuth2.0 開放授權 (1)
    https://ithelp.ithome.com.tw/articles/10266285

consent

  • 設定 Youtube API 的 Scopes 權限,也就是開放哪些 API Scopes 的使用

Scopes

  • 將自己加入 Test users 中, TestUser 可以限制在 Publishing status 為測試狀態 (Testing) 時,僅有測試用戶才能訪問該應用程式,而每個應用程式驗證前允許的用戶上限為 100 人,並且要注意用戶新增後無法進行刪除。設定在 Test User 中設定測試帳號,這個測試帳號在 OAuth consent screen 未發布的情況下可以進入進行測試,因此開發者需要記得進去設定才能夠有存取的權限。

users

串接 Youtube Reporting API

在 Youtube Reporting API 的認證中,呼叫 get_authenticated_service,並且以 build 方式呼叫Reporting API 的 v1 版本,並且在 credentials 中填入自己的金鑰 ('youtubereporting','v1', credentials=credentials)

import argparse,os
import sys,time,csv
import google.oauth2.credentials
import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from googleapiclient.http import MediaIoBaseDownload
from google_auth_oauthlib.flow import InstalledAppFlow
from io import FileIO
from datetime import datetime

CLIENT_SECRETS_FILE = 'client_se.....com.json'
SCOPES = ['https://www.googleapis.com/auth/yt-analytics-monetary.readonly']
API_SERVICE_NAME = 'youtubereporting'

# Authorize the requests.
def get_authenticated_service():
    flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
    credentials = flow.run_console()
    return build('youtubereporting','v1', credentials=credentials)

build

  • 執行後可以在底下得到應用連結,點入連結後,進行 OAuth consent screen 的驗證,詳細資訊可以回到 Day15 看看:Youtube Analytics API 教學 - OAuth2.0 開放授權 (1)
    https://ithelp.ithome.com.tw/articles/10266285

Analytics

  • 進行 OAuth consent screen 的驗證選取你的 Google Cloud Platform 帳戶

screen

  • 完成 OAuth consent screen 的驗證後將你獲得的 authorization code 貼回 Python 的 authorization function 中,讓 Python 知道要取用你這個帳戶的資料。

OAuth

今天說明了 Reporting API 的 OAuth2.0 開放授權

終於邁入 Reporting API 了,等於我們的挑戰賽到達了賽末點,還蠻高興的,如果有時間也歡迎看看我的夥伴們的文章

lu23770127 — SASS 基礎初學三十天
10u1 — 糟了!是世界奇觀!
juck30808 — Python — 數位行銷分析與 Youtube API 教學
HLD — 淺談物件導向與Design Pattern介紹
SiQing47 — 前端?後端?你早晚都要全端的,何不從現在開始?

Jerry Chien

【鮭魚均】 現職是 200 多萬訂閱 Youtuber 的數據分析師,專長在 Python 的開發與使用,大學雖然是資訊背景但總是斜槓跑到商管行銷領域,以工作角度來說的話,待過 FMCG、通訊軟體、社群影音產業,也算是個數位行銷體系出生的資訊人。這 30 天鐵人挑戰賽會從數位行銷角度去重新切入數據分析這件事情,期待這個社會中,每個人能在各個角力間不斷沖突而漸能找到一個平衡點回歸最初的統計建立最終的初心。

下一篇:Youtube Reports API 教學 - 頻道中出報表


上一篇
Youtube Analytics API 教學 - 告一個段落
下一篇
Youtube Reports API 教學 - 頻道中出報表
系列文
Python - 數位行銷分析與 Youtube API 教學30
0
lw90967
iT邦新手 5 級 ‧ 2021-10-12 18:41:45

推推推推!

0
Siqing47
iT邦新手 5 級 ‧ 2021-10-12 20:46:08

衝阿~~快結束了

0
juck30808
iT邦新手 3 級 ‧ 2021-10-14 11:25:00

--- 10/14完賽前重新更新錯字與圖片 ---

我要留言

立即登入留言