8 min read

使用 n8n + telegram + Gemini 實作 Youtube 摘要機器人

帶你手把手使用 n8n、tg bot、Gemini 打造無字幕也可以使用的 Youtube 摘要機器人,完全免費!(附上可以直接複製使用的 workflow)
使用 n8n + telegram + Gemini 實作 Youtube 摘要機器人

直接使用 Workflow

先決條件

第一步:串接 Telegram

從 Bot Father 取得 API Token

BotFather
BotFather is the one bot to rule them all. Use it to create new bot accounts and manage your existing bots.

點擊這個連結即可直接在 Telegram 使用

取得 API Token 需要 3 個步驟

  1. 執行 /newbot 指令
  1. 填寫 name:用來顯示在聊天室的命名,不用擔心被別人使用過
name 的範例顯示方式
  1. 填寫 username:bot 的唯一 ID,如果與別人重複會需要重新命名,並且需要以 bot 結尾

API Token 的格式會是:8888800000:ABCDE4lfG5i0NVaAxnozHeafaK2y-pNuHFA

BOT_ID:BOT_ALPHANUMERIC_PART

取得 API Token 後,記得不要泄漏給其他人、或是公佈在公開網路上。

下個步驟我們將把 Credential 新增到 n8n 的 telegram 節點。

新增 n8n Telegram Credential

  1. 在你的 n8n 實例中選擇新增 Credential
  1. 找到 Telegram 後點擊新增
  1. Access Token 欄位填入剛剛得到的 API Token,並且 Save

新增 Telegram 節點:接收訊息、回傳貼圖

新增 Telegram Trigger Node

新增 Telegram Trigger 後,我們可以試試 Pull Event,也就是試著傳訊息給 bot。

這邊我們可以直接傳送一個 youtube 連結給 telegram,方便後續直接測試使用。

傳送連結範例:https://www.youtube.com/watch?v=CfM7JHJWe58

點擊左側的 Execute Step,Telegram 就可以開始接收訊息。
傳遞訊息後,右側會出現對應的資料,代表接收功能正常。

接下來我們再建立一個 Telegram Send a Sticker 節點,並且將對應的 Chat ID 拖拉到指定欄位。

把喜歡的貼圖 ID 複製到 Sticker 欄位:

CAACAgIAAxkBAAEPeuNo3MVT6jez0GGZsM406FsRRVo66QACKRUAAviLwEupQBIzh-Q46DYE

這裡用的範例
執行 Execute Step,看右方、Telegram 聊天室是否有出現結果。

如果一切正常,那我們將進入下一步關鍵節點:Gemini 串接

第二步:使用 Gemini

這一步是我們所有節點中最關鍵的一步,但一切都建立在你有先在 Google AI Studio 註冊帳號、取得 API Key。

Google AI Studio
The fastest path from prompt to production with Gemini

不用擔心,只要你擁有 Google 帳號,註冊跟取得 API Key 都是幾個步驟點一點就可以完成的事。

Google AI Studio 目前甚至是不會收取額外費用的,免費額度提供得非常大方。
除了 Chat 以外,這些服務也都是可以玩玩看的內容

取得 Google AI Studio API Key

這個步驟非常簡單:

  1. 使用 Google 帳號登入 Google AI Studio
  2. 點擊左下角 Get API key
  3. 會需要你先新增一個 project
    1. 這裡的 project 是為了讓你更好管理你的 API key,可以查看不同 project 的使用狀況
  4. 最後則是新增 API Key,準備將其填入 n8n 的 Credential
再次提醒不要將你的 API Key 公開、或是提供給其他人使用

新增 Credential

在 n8n 新增 Google Gemini 的 Credential

將剛剛複製到的 API Key 填入對應的格子中。

儲存過後,如果上方出現 Connection tested successfully ,那恭喜你,你已經可以在 n8n 使用 Gemini 的服務!

新增 HTTP 節點

在 n8n 新增 HTTP 節點

接下來的步驟會比較複雜,由於目前 n8n 官方的 Gemini 節點還沒辦法直接取得 youtube 轉錄稿的功能,我們將直接使用 API Request 的方式跟 Gemini 互動。

使用 Gemini API 影片理解功能

Video understanding | Gemini API | Google AI for Developers
Get started building with Gemini's multimodal capabilities in the Gemini API

我們一步一步把需要的內容填進去 HTTP Node:

  1. Method 選擇 POST
  2. URL 欄位填入:https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent
  3. Authentication 欄位選擇 Predefined Credential Type
    1. Credential Type 選擇 Google Gemini(PaLM) Api
    2. Google Gemini(PaLM) Api 選擇剛剛建立的 Google AI Studio API Key
  4. 點擊 Send Body
    1. Body Content Type 選擇 JSON
    2. Specify Body 選擇 Using JSON
    3. 將以下內容貼入欄位
{
  "contents": [
    {
      "parts": [
        {
          "text": "Create a summary in zh-tw using its transcript. You will use the following template:\n\n\"\"\"\n\n## Summary\n\n{Multiple sentences summarising the YouTube video in zh-tw\n\n## Notes\n\n{Bullet points that summarize the key points or important moments from the video’s transcript with explanations in zh-tw}\n\n## Quotes\n\n{Extract 10 best sentences from the transcript in a list}\n\"\"\"\n\nTranscript: get from the video\n\nReturn Summary and Notes in zh-tw, but Quotes in original context"
        },
        {
          "file_data": {
            "file_uri": "{{ $('Telegram Trigger').item.json.message.text }}"
          }
        }
      ]
    }
  ]
}

接下來我們就可以執行 Execute Step,等待差不多一分鐘後就會有結果產出。

這次特別選了沒有字幕的影片當作參考,因為底層的邏輯是讓 Gemini 產出 Youtube 影片的逐字稿,再根據逐字稿去產出摘要。

到這裡其實已經算大功告成了,接下來我們只要將總結摘要回傳到 Telegram,就成功完成這個 workflow。

第三步:回傳摘要至 Telegram

格式化摘要

由於 Telegram MarkdownV2 的限制,由 AI 產出的摘要格式很難滿足需求,導致傳送很容易失敗。

因此我用了 telegramify-markdown + Cloudflare Workers & Pages 去部署了一個免費的服務解決這個問題。

Markdown to Telegram MarkdownV2 Converter
Built using telegramify-markdown and Cloudflare Workers & Pages. Built by projectstain.dev

這裡新增一個 HTTP 節點,依照下方步驟填入即可:

  1. Method 選擇 POST
  2. URL 欄位填入:https://api.md2tg.projectstain.dev/
  3. 點擊 Send Body
    1. Body Content Type 選擇 JSON
    2. Specify Body 選擇 Using Fields Below
    3. Name 填入 markdown
    4. Value 將左側的 text 拉到對應的欄位中
  4. 點擊 Execute Step 後右側會出現輸出的結果

刪除貼圖、回傳摘要至聊天室

這邊的操作很簡單,只需要將之前傳送的貼圖刪除、最後再把摘要回傳即可。

新增 Delete Chat Message Node 後,將 chat_idmessage_id 拉到對應欄位

最後的步驟:

  1. 新增 Telegram Send a text message Node
  2. 將對應的 telegram_textchat_id 拖到欄位中
  3. Additional Fields 中選擇 Parse Mode
    1. 選擇 Markdown V2
  4. Execute Step 後即出現結果

最後的最後:啟用工作流

點擊右上方啟用工作流

啟用工作流後,你的 Youtube 摘要機器人就正式完成!

隨時將想摘要的影片丟入 telegram 中,無論是手機版或是電腦版都能正確執行。