Google Cloud 設定 YouTube API 與 OAuth:從啟用 API 到取得 client_secret.json

| Application program | 2 Reads

如果想透過 Python、C# 或其他本機程式讀取自己的 YouTube 資料,例如:

  • 影片觀看數
  • 觀看時間
  • 平均觀看時間與平均觀看比例
  • 流量來源
  • YouTube 搜尋詞
  • 觀眾留存
  • 縮圖曝光與 CTR

除了啟用 YouTube API 之外,還需要設定 Google OAuth 2.0,讓本機程式能以自己的 Google 帳號取得私人 YouTube Analytics 資料。

這篇文章整理一次完整的設定流程,目標是最後取得:

client_secret.json

之後程式就可以利用這份 OAuth Client 設定,開啟瀏覽器要求 Google 帳號授權。


一、在 Google Cloud 建立或選擇 Project

首先進入 Google Cloud Console。

如果已經有 Project,可以直接使用現有 Project;如果沒有,則建立一個新的 Project。

這次的設定主要會使用:

  • Google Cloud Project
  • APIs & Services
  • Google Auth Platform

不需要建立 VM、Cloud Storage Bucket 或其他雲端資源。


二、啟用三個 YouTube API

開啟 Google Cloud 左上角選單,進入:

APIs & Services
→ Library

接著分別搜尋並啟用以下三個 API。

1. YouTube Data API v3

在 Library 搜尋:

YouTube Data API v3

進入 API 頁面後按下:

Enable

啟用成功後,頁面會顯示:

Status: Enabled

2. YouTube Analytics API

再次回到 Library,搜尋:

YouTube Analytics API

進入後同樣按下 Enable。

3. YouTube Reporting API

最後搜尋:

YouTube Reporting API

並按下 Enable。

完成後,這個 Project 應該已經啟用以下三個 API:

  • YouTube Data API v3
  • YouTube Analytics API
  • YouTube Reporting API
補充:
如果程式需要取得縮圖曝光數、CTR 等 Reach 類型資料,使用的仍然是 YouTube Reporting API 中提供的相關報表,不需要另外尋找一個名為「Reach Reporting API」的第四個 API。

三、建立 OAuth App

API 啟用之後,還不能直接取得自己的私人 YouTube Analytics 資料。

因為這些資料與 Google 帳號、YouTube 頻道權限有關,所以還需要設定 OAuth。

進入:

Google Auth Platform

第一次進入時,需要先設定 OAuth App 的基本資訊。

App Information

例如可以這樣填:

欄位 填寫內容
App name 例如 YouTubeAnalyticsTool
User support email 自己的 Google 帳號 Email

App name 主要是 OAuth 授權畫面上顯示的應用程式名稱,不會影響 YouTube 頻道名稱。


四、Audience 選擇 External

下一步會要求選擇 Audience。

通常可以看到:

  • Internal
  • External

如果使用的是一般 Google 帳號,或者只是要讓自己在本機執行工具,選擇:

External

Internal 主要用於 Google Workspace 組織內部的應用程式。

選擇 External 後,OAuth App 一開始通常會處於 Testing 模式。


五、設定 Contact Information

接著 Google 會要求填寫聯絡 Email。

直接填自己的 Google 帳號 Email 即可。

這個 Email 主要是讓 Google 在 OAuth App 發生政策、安全或設定相關問題時,可以聯絡開發者。

填寫完成後繼續下一步,最後按下 Finish。


六、加入 Test users

因為目前 OAuth App 處於 Testing 模式,所以需要指定哪些 Google 帳號可以使用這個 App。

進入:

Google Auth Platform
→ Audience
→ Test users

點擊:

Add users

然後加入實際管理目標 YouTube 頻道的 Google 帳號。

注意:
這裡加入的帳號,最好就是之後實際執行 OAuth 授權,而且擁有該 YouTube 頻道權限的 Google 帳號。

七、建立 Desktop app OAuth Client

接下來進入:

Google Auth Platform
→ Clients

點擊:

Create OAuth client

Application type 選擇:

Desktop app

Name 可以自行命名,例如:

YouTubeAnalyticsTool Desktop

確認後按下:

Create

如果是 Desktop app,一般不需要自己設定 Redirect URI。

這種類型就是給 Windows、macOS 或 Linux 上的本機應用程式使用。


八、下載 OAuth JSON

建立完成後,Google 會產生一組 OAuth Client。

其中會包含:

  • Client ID
  • Client secret
  • OAuth Client JSON

一般不需要手動把 Client ID 或 Client secret 複製進程式。

直接下載 JSON 即可。

下載後的檔名可能類似:

client_secret_123456789-xxxxxxxx.apps.googleusercontent.com.json

可以把它重新命名為:

client_secret.json

然後放進自己的程式專案目錄,例如:

C:\Users\<使用者名稱>\Documents\YourProject\client_secret.json

九、第一次執行程式時完成 Google OAuth 授權

接下來程式就可以利用:

client_secret.json

啟動 Google OAuth 授權流程。

第一次執行時,一般會經過以下步驟:

  1. 程式啟動預設瀏覽器。
  2. Google 顯示帳號登入或帳號選擇畫面。
  3. 選擇剛才加入 Test users 的 Google 帳號。
  4. Google 顯示應用程式要求的 YouTube 權限。
  5. 確認權限內容並允許授權。
  6. 授權成功後,瀏覽器顯示成功訊息。
  7. 程式取得 OAuth Access Token,必要時也會取得 Refresh Token。

如果這個 OAuth App 尚未經過 Google 公開驗證,授權過程中可能會看到「Google 尚未驗證這個應用程式」之類的提示。

如果本來就是自己建立、自己使用的 OAuth App,應先確認畫面顯示的應用程式名稱與 Google Cloud Project 都是自己的,再繼續授權。


十、程式可能產生 token.json

許多使用 Google API 的 Python 程式,在第一次 OAuth 授權成功之後,會將取得的憑證保存成:

token.json

例如專案目錄可能變成:

YourProject\
├─ youtube_api_audit.py
├─ client_secret.json
├─ token.json
└─ ...

之後再次執行程式時,就可以利用已保存的 Token,不需要每一次都重新手動登入。

重要:
client_secret.json 和 token.json 都不應公開上傳,也不要直接貼到論壇、聊天記錄或公開 Repository。

十一、記得加入 .gitignore

如果專案有使用 Git,建議把 OAuth 相關檔案加入:

.gitignore

至少加入:

client_secret.json
token.json

這樣可以避免不小心把 OAuth Client Secret 或授權 Token 推送到 GitHub。


十二、完整流程整理

整套流程可以整理成:

建立或選擇 Google Cloud Project

↓
啟用 YouTube Data API v3

↓
啟用 YouTube Analytics API

↓
啟用 YouTube Reporting API

↓
建立 Google Auth Platform OAuth App

↓
Audience 選擇 External

↓
加入自己的 Google 帳號到 Test users

↓
Clients → Create OAuth client

↓
Application type 選 Desktop app

↓
下載 OAuth JSON

↓
改名為 client_secret.json

↓
放入本機程式目錄

↓
執行程式

↓
瀏覽器登入 Google

↓
允許 YouTube API 權限

↓
程式取得 Token

↓
開始讀取 YouTube 資料

總結

如果只是要透過本機 Python、C# 或其他桌面程式分析自己的 YouTube 頻道,核心設定主要就是三部分:

  • 啟用需要的 YouTube API
  • 建立 External OAuth App,並把自己的帳號加入 Test users
  • 建立 Desktop app OAuth Client 並取得 client_secret.json

完成之後,本機程式就可以透過 Google OAuth,在使用者明確授權的情況下讀取 YouTube Data、Analytics 與 Reporting 資料,而不需要把 Google 帳號密碼直接交給程式。

This article was last edited at