
為什麼 YouTube 不能用 Service Account?
如果你讀過 Service Account 那篇,你知道我力推 Service Account:穩定、不過期、一次設定搞定。 但 YouTube 不讓你用。
這是 Google 的政策,YouTube Data API 的設計基礎是「代表真實用戶操作」,所以它要求的是 OAuth2——也就是說,必須有一個真實的 Google 帳號點擊「我同意」,才能授權。Service Account 是「機器對機器」,YouTube 那邊不認。
所以這篇文章的目的只有一個:讓你的 n8n 能夠操作 YouTube,一次設好,讓它乖乖工作。
OAuth2 是什麼?一句話解釋
你一定見過「使用 Google 帳號登入」的按鈕。這就是 OAuth2 的日常版本——讓某個應用程式,代表你去操作你的 Google 服務。
n8n 要操作你的 YouTube,就是同一件事。只是這次是你自己設定那個「應用程式」,然後自己去點「我同意」。
聽起來很繞,但做起來只有幾步。
申請流程總覽
流程跟 Service Account 前半段幾乎一樣,差別從第三步開始:
- 登入 GCP,建立或開啟專案
- 啟用 YouTube Data API
- 【新】設定 OAuth 同意畫面
- 【不同】建立 OAuth 客戶端 ID(不是 Service Account)
- 【不同】取得 Client ID 和 Client Secret
- 到 n8n 建立 Credential,填入並授權
第一步:登入 GCP,建立專案
如果你已經在 Service Account 篇建立過專案,直接用同一個專案就好,不用重新建立。YouTube API 和其他 Google API 可以共存在同一個專案裡。
如果你是第一次進來:
- 點頂部的專案選擇器
- 選 New Project
- 輸入名稱,例如
n8n-integrations,按建立
如果 GCP 跳出「$300 三個月試用」,申請一下,免費的不拿白不拿。不申請也不影響這篇的設定,但後續如果有費用相關操作,沒綁卡號會一直跳警告很煩。
第二步:啟用 YouTube Data API
- 按左上角「漢堡按鈕」開啟側欄
- 點選 API 與服務 > 資料庫
- 搜尋欄輸入
YouTube Data - 從搜尋結果點選 YouTube Data API v3
- 按 啟用(Enable)
注意是 YouTube Data API v3,不是 YouTube Analytics 或 YouTube Reporting,長得很像,選錯了。
第三步:設定 OAuth 同意畫面(Consent Screen)
這是 OAuth2 跟 Service Account 最大的不同。Service Account 完全跳過這步,OAuth2 一定要做。
這個畫面的用途是:當你點擊「使用 Google 授權」的時候,Google 會彈出一個視窗,告訴你「某某應用程式想要存取你的 YouTube」,這個視窗的內容,就是你在這裡設定的。
操作步驟:
- 側欄點選 API 與服務 > OAuth 同意畫面
- 使用者類型選 外部(External),按 建立
「外部」不代表任何人都能用。只是相對於「內部」(限 Google Workspace 組織帳號),「外部」表示允許一般 Gmail 帳號,也就是你自己。選內部反而可能讓你的個人帳號用不了。
- 填寫必要欄位:
- 應用程式名稱:隨便填,例如
My n8n或n8n YouTube - 使用者支援電子郵件:選你自己的 Gmail
- 開發人員聯絡資訊:填你的 Gmail
- 應用程式名稱:隨便填,例如
- 按 儲存並繼續
- 下一頁是「Scope(權限範圍)」。這一步先跳過,直接按儲存並繼續。
Scope 可以不在這裡設,後面在 n8n 設定 Credential 的時候,n8n 本身就會要求正確的 YouTube 權限。在這邊加了也不會有副作用,但初學者先跳過比較不容易亂。
- 下一頁「測試使用者」,把你自己的 Gmail 加進去,按 新增。
這很重要。應用程式還在「測試中」狀態,只有被列為測試使用者的帳號才能完成授權。自己的帳號加進去才能用。
- 一路 儲存並繼續 到最後,按 返回資訊主頁。
第四步:建立 OAuth 客戶端 ID
- 側欄點選 API 與服務 > 憑證
- 按上方 + 建立憑證
- 選 OAuth 客戶端 ID(不是 API 金鑰,也不是服務帳戶)
- 應用程式類型 選 網頁應用程式(Web application)
就算你的 n8n 跑在本機電腦也是選這個,不要選「桌面應用程式」。
- 名稱 隨意,例如
n8n OAuth - 重頭戲來了:授權重新導向 URI(Authorized redirect URIs)
填入 Redirect URI(重要!)
這是 OAuth2 流程最關鍵的一步,也是最常卡住的地方。
概念: 你在 Google 點了「我同意」之後,Google 需要知道要把你「送回」哪個網址。這個網址就是 Redirect URI。你得先告訴 Google,n8n 的接收網址是什麼。
怎麼找到這個網址? 先去 n8n 找。這兩個視窗要同時開著:GCP 一個、n8n 一個。
- 在 n8n 裡,新增一個 YouTube 節點(或任何需要 Google OAuth2 的節點)
- 在節點的 Credential 欄位,點選 Create New Credential
- 選擇 Google OAuth2 API
- 你會看到 n8n 的 Credential 設定畫面,裡面有一行 OAuth Redirect URL
如果你的 n8n 跑在本機(localhost),它會長這樣:
如果跑在正式伺服器上,會是你的網域,例如:http://localhost:5678/rest/oauth2-credential/callbackhttps://n8n.yourcompany.com/rest/oauth2-credential/callback - 複製這個完整的網址
回到 GCP 的「授權重新導向 URI」欄位,按 + 新增 URI,貼上你剛才複製的網址。 按 建立。
第五步:取得 Client ID 和 Client Secret
建立完成後,GCP 會彈出一個視窗,顯示:
- 客戶端 ID(Client ID):一長串數字,結尾是
.apps.googleusercontent.com - 客戶端密鑰(Client Secret):一串英數字
這兩個都要複製起來。(或點「下載 JSON」,裡面有這兩個值)
如果你不小心把視窗關掉了,回到「API 與服務」>「憑證」,找到你建立的 OAuth 客戶端,點旁邊的鉛筆圖示編輯,一樣可以看到這兩個值。不用重新建立。
第六步:在 n8n 設定 Credential
回到 n8n,繼續剛才的 Credential 設定畫面。
- Client ID:貼入剛才的 Client ID
- Client Secret:貼入剛才的 Client Secret
- 按右上角 Sign in with Google(或 Connect)
這時候瀏覽器會跳出 Google 授權視窗。 4. 選擇你要授權的 Google 帳號(就是你剛才把它加進「測試使用者」的那個帳號) 5. Google 可能會顯示「這個應用程式未經 Google 驗證」的警告頁面
這是正常的。因為你的應用程式還在測試狀態,沒有送審給 Google。點左下角「進階」,再點「前往 n8n OAuth(不安全)」,繼續授權。放心,這是你自己建的,不是真的不安全。
- 勾選所有要求的 YouTube 權限,按 繼續
- 成功跳回 n8n,Credential 顯示綠色勾勾,表示連線成功
給 Credential 取個好記的名稱,例如 YouTube - Leo的帳號,按 Save。
OAuth2 的限制(要知道,但不用怕)
最常見的:Token 過期被踢掉 OAuth2 的 access token 有時效性,過期後 n8n 理論上會自動換新(refresh token)。但如果你的 Google 帳號改了密碼、撤銷了授權,或 Token 在閒置太久後被 Google 回收,就會失效,n8n 的工作流會靜悄悄地停止執行。 Service Account 不會有這個問題,這也是為什麼 YouTube 以外的服務,我繼續推薦用 Service Account。
每個 Google 帳號要個別授權 如果你要同時管理兩個 YouTube 頻道(不同 Google 帳號),就要建立兩個 Credential,分別授權。這跟 Service Account 可以共用一份不同。
應用程式「未驗證」限制 因為你的應用程式在測試模式,每個「測試使用者」最多只有 100 個(這對個人使用完全夠用)。如果你要讓很多人用,才需要送審 Google,但那是進階課題了,現在不用管。
設定完成後,怎麼用?
回到你的 YouTube 節點,在 Credential 欄位選擇你剛才建立的 Credential。
你現在可以做的事包括:
- 上傳影片
- 取得頻道統計數據
- 讀取播放清單
- 搜尋影片
一切操作都以你授權的那個 YouTube 帳號身份執行。
小結:Service Account vs OAuth2 選哪個
| Service Account | OAuth2 | |
|---|---|---|
| YouTube | ❌ 不支援 | ✅ 唯一選擇 |
| Sheets / Docs / Drive | ✅ 推薦 | 可以,但麻煩 |
| 穩定性 | 極穩定,不過期 | 偶爾被踢,要留意 |
| 設定難度 | 要理解「機器對機器」概念 | 要設 Redirect URI |
YouTube 就用 OAuth2,其他 Google 服務能用 Service Account 就用 Service Account。
