Google Cloud 設定 YouTube API 與 OAuth:從啟用 API 到取得 client_secret.json
Copyright Notice: This article is an original work licensed under the CC 4.0 BY-NC-ND license.
If you wish to repost this article, please include the original source link and this copyright notice.
Source link: https://v2know.com/article/1401
如果想透過 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 授權流程。
第一次執行時,一般會經過以下步驟:
- 程式啟動預設瀏覽器。
- Google 顯示帳號登入或帳號選擇畫面。
- 選擇剛才加入 Test users 的 Google 帳號。
- Google 顯示應用程式要求的 YouTube 權限。
- 確認權限內容並允許授權。
- 授權成功後,瀏覽器顯示成功訊息。
- 程式取得 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