🚀 YouTube MCP 服務器
這是一個全面的模型上下文協議(MCP)服務器,可通過 YouTube 數據 API v3 提供實時的 YouTube 數據訪問。該服務器使 AI 助手能夠搜索、分析並獲取有關 YouTube 視頻、頻道、播放列表等的詳細信息。
🚀 快速開始
本服務器藉助 YouTube 數據 API v3 提供實時數據訪問,讓 AI 助手能對 YouTube 上的各類內容進行操作。使用前請確保滿足相關要求,並按照安裝與設置步驟進行操作。
✨ 主要特性
14 項完整功能
get_video_details
- 獲取全面的視頻信息,包括標題、描述、統計數據和元數據。
get_playlist_details
- 檢索播放列表信息和元數據。
get_playlist_items
- 列出播放列表中的視頻及其詳細信息。
get_channel_details
- 獲取頻道信息,包括訂閱者數量、視頻數量和描述。
get_video_categories
- 列出特定地區可用的視頻類別。
get_channel_videos
- 獲取 YouTube 頻道的近期視頻。
search_videos
- 使用可定製參數在 YouTube 上搜索視頻。
get_trending_videos
- 檢索特定地區的熱門視頻。
get_video_comments
- 獲取視頻評論,並可進行排序。
analyze_video_engagement
- 分析視頻參與度指標並提供洞察。
get_channel_playlists
- 列出 YouTube 頻道的所有播放列表。
get_video_caption_info
- 獲取可用的字幕/轉錄信息。
evaluate_video_for_knowledge_base
- 對視頻內容進行智能評估,併為知識庫管理提供技術新鮮度評分。
get_video_transcript
- 從 YouTube 視頻中提取實際的轉錄內容。
關鍵能力
- ✅ 來自 YouTube 數據 API v3 的實時數據。
- ✅ 全面的錯誤處理和 API 配額管理。
- ✅ 支持多種 URL 格式(youtube.com、youtu.be、@用戶名、頻道 ID)。
- ✅ 具備技術新鮮度評分的智能內容評估。
- ✅ 靈活的搜索和過濾選項。
- ✅ 基於行業基準的參與度分析。
- ✅ 支持特定地區的熱門內容和類別。
- ✅ 符合 MCP 協議,便於與 AI 無縫集成。
📦 安裝指南
步驟 1:克隆倉庫
git clone https://github.com/dannySubsense/youtube-mcp-server.git
cd youtube-mcp-server
步驟 2:安裝依賴
pip install -r requirements.txt
步驟 3:獲取 YouTube API 密鑰
- 訪問 Google 雲控制檯。
- 創建一個新項目或選擇現有項目。
- 啟用 YouTube 數據 API v3。
- 創建憑據(API 密鑰)。
- (可選)為安全起見,將 API 密鑰限制為僅用於 YouTube 數據 API v3。
步驟 4:配置 API 密鑰
在項目根目錄下創建一個 credentials.yml
文件:
youtube_api_key: "YOUR_YOUTUBE_API_KEY_HERE"
重要提示:切勿將 credentials.yml
文件提交到版本控制系統!
步驟 5:測試服務器
python test_server.py
這將對所有 14 項功能進行全面測試,確保一切正常運行。
💻 使用示例
基礎用法
基本視頻信息
result = await get_video_details("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
result = await get_video_details("dQw4w9WgXcQ")
搜索與發現
tutorials = await search_videos(
query="Python tutorial",
max_results=10,
order="date"
)
trending = await get_trending_videos(region_code="US", max_results=5)
頻道分析
channel_info = await get_channel_details("@3Blue1Brown")
recent_videos = await get_channel_videos("@3Blue1Brown", max_results=5)
playlists = await get_channel_playlists("@3Blue1Brown")
內容評估(特殊功能)
evaluation = await evaluate_video_for_knowledge_base("Z6nkEZyS9nA")
轉錄提取(新功能)
transcript = await get_video_transcript("Z6nkEZyS9nA")
transcript_spanish = await get_video_transcript(
"https://www.youtube.com/watch?v=Z6nkEZyS9nA",
language="es"
)
參與度分析
engagement = await analyze_video_engagement("dQw4w9WgXcQ")
comments = await get_video_comments("dQw4w9WgXcQ", max_results=10, order="relevance")
高級用法
自定義項目集成
對於自定義應用程序或其他 MCP 客戶端:
from youtube_mcp_server import (
get_video_details,
search_videos,
evaluate_video_for_knowledge_base
)
async def example():
results = await search_videos("machine learning", max_results=5)
print(results)
evaluation = await evaluate_video_for_knowledge_base("dQw4w9WgXcQ")
print(evaluation)
環境變量設置
你也可以使用環境變量代替憑據文件:
export YOUTUBE_API_KEY="your_api_key_here"
📚 詳細文檔
函數參考
函數 |
用途 |
關鍵特性 |
get_video_details |
獲取完整的視頻信息 |
觀看次數、點贊數、時長、描述 |
get_playlist_details |
獲取播放列表元數據 |
標題、描述、視頻數量 |
get_playlist_items |
獲取播放列表中的視頻 |
帶元數據的有序列表 |
get_channel_details |
獲取頻道信息 |
訂閱者數量、總觀看次數、描述 |
get_video_categories |
獲取可用的視頻類別 |
特定地區的類別列表 |
get_channel_videos |
獲取頻道的近期視頻 |
最新上傳的視頻及其詳細信息 |
search_videos |
視頻搜索 |
多種排序方式和過濾選項 |
get_trending_videos |
獲取熱門內容 |
特定地區的熱門視頻 |
get_video_comments |
獲取視頻評論 |
排序、回覆數量 |
analyze_video_engagement |
分析參與度指標 |
行業基準、洞察 |
get_channel_playlists |
獲取頻道的播放列表 |
所有公開播放列表 |
get_video_caption_info |
獲取字幕可用性 |
語言、手動或自動生成 |
evaluate_video_for_knowledge_base |
內容評估 |
針對技術內容的智能新鮮度評分 |
get_video_transcript |
提取轉錄內容 |
全文提取、時間戳、多語言支持 |
特殊功能:智能內容評估
evaluate_video_for_knowledge_base
函數包含高級內容評估:
技術新鮮度評分
- 高波動性主題(React、AWS、AI/ML):強烈傾向於近期內容。
- 中波動性主題(Python、通用編程):適度的新鮮度加分。
- 穩定主題(算法、數學):最小的時效性懲罰。
質量指標
- 觀看次數和參與度指標。
- 手動或自動生成的字幕。
- 內容類型檢測(教程、評測等)。
- 時長合理性。
- 技術時效性指標(2024、2025、“最新”、版本號)。
智能推薦
- 🟢 強烈推薦 - 高質量 + 近期技術內容。
- 🟡 適度推薦 - 有一些積極指標。
- 🔴 有限推薦 - 質量指標較少。
API 配額使用
函數 |
配額成本 |
備註 |
基本函數(get_video_details 等) |
1 單位 |
低成本 |
搜索函數 |
100+ 單位 |
高成本 |
字幕函數 |
50+ 單位 |
中高成本 |
評估函數 |
51 單位 |
中高成本 |
每日限制:10,000 單位(默認)。
監控使用情況,避免配額耗盡。
錯誤處理
服務器包含全面的錯誤處理,針對以下情況:
- 無效的 API 密鑰。
- 配額超出錯誤。
- 網絡連接問題。
- 無效的視頻/頻道 ID。
- 地區限制。
- 評論/字幕禁用。
測試
運行全面的測試套件:
python test_server.py
這將使用真實的 YouTube 內容對所有 14 項功能進行測試,並提供詳細輸出。
安全注意事項
- 切勿提交你的
credentials.yml
文件。
- 限制你的 API 密鑰僅用於 YouTube 數據 API v3。
- 監控配額使用情況,防止意外成本。
- 在生產環境中使用環境變量。
貢獻指南
- 分叉倉庫。
- 創建功能分支 (
git checkout -b feature/amazing-feature
)。
- 使用
python test_server.py
測試你的更改。
- 提交更改 (
git commit -m 'Add amazing feature'
)。
- 推送到分支 (
git push origin feature/amazing-feature
)。
- 打開拉取請求。
開發說明
本項目採用以下開發方式:
- 增量開發方法 - 一次開發一個函數。
- 測試驅動開發 - 在集成前對每個函數進行測試。
- 用戶協作 - 持續反饋和審批機制。
- 備份協議 - 安全開發,具備回滾能力。
詳細的開發和測試流程請參閱 documents/testing.md
。
故障排除
常見問題
“未找到 API 密鑰”錯誤:
- 確保
credentials.yml
文件存在且格式正確。
- 檢查文件權限。
- 驗證 API 密鑰有效且未受限。
“配額超出”錯誤:
- 檢查你的 Google 雲控制檯配額使用情況。
- 考慮升級配額或優化請求。
- 對頻繁訪問的數據使用緩存。
“未找到視頻”錯誤:
- 驗證視頻 ID 或 URL 是否正確。
- 檢查視頻是否為私有或受限。
- 確保視頻未被刪除。
MCP 連接問題:
- 驗證配置中的 Python 路徑。
- 檢查所有依賴項是否已安裝。
- 配置更改後重啟 MCP 客戶端。
📄 許可證
本項目採用 MIT 許可證 - 詳情請參閱 LICENSE 文件。
🙏 致謝
準備好為你的 AI 助手添加 YouTube 功能了嗎?立即開始吧! 🚀