
專案概述
這是一個自動化的 Discord 機器人,專門用於爬取 YouTube 頻道的最新影片和直播內容,並將其推送到指定的 Discord 頻道。機器人支援自動排程(每小時整點和半點檢查)和手動觸發,並具備完整的頻道管理功能,避免重複推送相同內容。
技術挑戰與解決方案
YouTube 爬蟲實現
需要穩定地爬取 YouTube 頻道內容,並處理各種反爬蟲機制。
解決方案:
實作雙重爬蟲策略:Fetch API 作為主要方式,Puppeteer 作為備用方案,確保爬取穩定性。
重複內容避免
需要追蹤已推送的影片,避免重複通知用戶。
解決方案:
建立本地快取機制,記錄已推送內容的 ID,並實作智能過濾算法。
定時任務管理
需要確保機器人能夠穩定地執行定時檢查任務,不受服務重啟影響。
解決方案:
使用 PM2 進行程序管理,配置自動重啟和錯誤處理機制。
系統架構

使用 Node.js + Discord.js 開發,支援 Fetch API 和 Puppeteer 兩種爬蟲模式,透過 PM2 進行程序管理,定時任務確保穩定運行。
學習與心得
這個專案讓我深入學習了 Discord 機器人開發、網頁爬蟲技術,以及自動化任務的設計。特別是在處理反爬蟲機制和確保服務穩定性方面積累了寶貴經驗。
技術棧
核心技術
Node.jsDiscord.jsJavaScript
爬蟲技術
YouTube APIPuppeteerFetch API
部署管理
PM2Linux Cron