前言¶
開發者常接到這類請求:「幫我把這個做菜視頻整理成菜譜」。問題在於視頻內容不在上下文裏:字幕要下載、音頻要轉寫、食材用量和步驟順序要識別,最後還要落成一份能複用的文件。廚神把這些步驟打包成一個 WorkBuddy skill,輸入鏈接,輸出帶時間戳、食材清單和可信度標註的 Markdown 菜譜。
下面介紹它的定位、依賴、用法和輸出格式。
這是什麼¶
廚神(Chef God)是一個面向 WorkBuddy 的菜譜生成 skill,座標 @user_9ec9e4b3/chef-god,版本 1.0.0,來源 community,分類 life-service,標籤 requires_api_key=false,即無需 API Key。
它把一條做菜視頻鏈接處理成結構化菜譜,流程是:解析鏈接 → 下載視頻 → 提取字幕或音頻 → 判斷內容是否屬於烹飪教學 → 生成 Markdown 菜譜並保存。官方聲明的原則是「基於視頻,而非想像。可追溯,不造假」,意思是菜譜裏的每個信息點要麼能回溯到視頻內容,要麼明確標註爲 AI 推斷。
視頻下載模塊基於 kangaroking/kangaroking-skills/video-downloader(MIT)改造適配。
核心能力¶
按抓取資料,能力包括:
- 三種輸入:視頻鏈接、指令加鏈接、純文本描述。
- 多平臺:YouTube、B站、抖音、小紅書。
- 內置 fetcher 同時產出 metadata.json、post_caption.txt、transcript.txt、audio.mp3。
- 嚴格分類:只處理烹飪教學/演示類內容,其餘停止。
- 多菜品視頻拆分爲多個獨立 Markdown 文件。
- 輸出帶時間戳的步驟和信息可信度表。
安裝與環境依賴¶
安裝走 WorkBuddy 的標準 skill 流程,座標是 @user_9ec9e4b3/chef-god。運行期需要 Python 3.11+、yt-dlp 和 ffmpeg:
pip install -r requirements.txt
ffmpeg 按平臺安裝:
# Windows
winget install ffmpeg
# macOS
brew install ffmpeg
# Linux
apt install ffmpeg
YouTube 鏈接需要登錄態。官方做法是導出 cookies 文件放到 skill 目錄:
# 1. 安裝瀏覽器擴展 Get cookies.txt LOCALLY
# 2. 打開 youtube.com 並登錄
# 3. 點擊擴展圖標 → Export
# 4. 導出文件重命名爲 youtube_cookies.txt,放到本 skill 目錄
資料裏特別提醒不要把真實的 youtube_cookies.txt 提交到 GitHub,倉庫已在 .gitignore 中排除該文件。本地 yt-dlp 配置已永久指向這個 cookies 文件。
觸發方式¶
三種輸入都支持:
# 1. 直接甩鏈接
https://www.bilibili.com/video/BV1r34y1u7Uc
# 2. 明確指令 + 鏈接
幫我生成這個視頻的菜譜:https://v.douyin.com/FpwGDC6dptU/
# 3. 純文本輸入
今天教大家做番茄炒蛋。食材:番茄2個,雞蛋3個...
典型工作流¶
場景 A:用戶提供視頻鏈接¶
- 解析鏈接,識別平臺(抖音/B站/YouTube/小紅書)。
- 運行內置 fetcher,下載視頻並提取音頻:
cd ~/.workbuddy/skills/recipe-chef/scripts
python3 fetch_video.py "鏈接" --output-dir "./tmp/{video_id}" --extract-audio
- 讀取產物:
metadata.json(標題、作者、時長、平臺、來源 URL)、post_caption.txt(平臺文案/描述)、transcript.txt(字幕/口播文本)、audio.mp3(用於 Agent 進一步轉寫)。 - 內容分類判斷:烹飪教學/演示則繼續;探店、喫播、純展示、非烹飪則告知用戶並停止。
- 視頻時長超過 30 分鐘時,提醒用戶處理時間可能較長。
- 讀取
prompts/recipe_generation.md作爲生成提示。 - 基於 transcript + caption + metadata 生成結構化菜譜。
- 多菜品視頻拆分爲多個獨立 Markdown 文件。
- 保存到項目工作區
recipes/YYYY-MM-DD_菜名_作者.md。 - 在對話中預覽關鍵信息並告知文件保存路徑。
場景 B:用戶直接提供文本¶
- 內容分類判斷。
- 直接基於文本生成菜譜。
- 保存文件,無視頻來源時標註「純文本輸入」。
- 預覽並告知路徑。
各平臺下載策略¶
內置 scripts/fetch_video.py,舊入口 download_video.py 仍兼容。資料列出的策略:
- 抖音:解析 H5 分享頁
window._ROUTER_DATA做無水印下載,兜底走 yt-dlp 或 CDN 直連。 - B站:yt-dlp 優先;觸發 412 時走公開 API 取 DASH 音頻流再用 ffmpeg 轉碼;再兜底 yt-dlp + 瀏覽器 cookies。
- YouTube:yt-dlp + cookies → yt-dlp + EJS 組件(
--remote-components ejs:github)→ Invidious/Piped 鏡像站 → WebSearch 找博主在其他平臺的文字版食譜。 - 小紅書:yt-dlp 爲主路由,兜底瀏覽器 cookies。
輸出格式與信息可信度¶
菜譜保存到項目工作區 recipes/ 目錄,文件名 YYYY-MM-DD_菜名_作者.md。結構包含基本信息表、食材清單(含替代建議)、調料表(含放入時機)、食材預處理與烹飪步驟(帶時間戳)、關鍵技巧、成品參考、信息可信度說明。
信息可信度表是這套輸出的核心。資料給出的標記規則:
| 標記 | 含義 |
|---|---|
| ✅ | 視頻明確說明的內容 |
| 🤖 | AI 推斷,視頻只說「適量」「少許」「一塊」等 |
| ❓ | 視頻完全未提及 |
資料還給出兩條硬約束:核心步驟缺失超過 40% 時拒絕生成;多菜品必須拆分成獨立文件。
下面是官方模板的關鍵片段,說明時間和可信度是怎麼落進文件的:
## 🔪 食材預處理
1. **[01:23]** 五花肉冷水下鍋,加薑片、料酒,焯水 5 分鐘
- ⚠️ 注意:冷水下鍋才能充分去血水
## 🍳 烹飪步驟
### 步驟 1:炒糖色 [03:45](約 3 分鐘)
- **操作**:鍋中放少量油,加冰糖,小火慢炒至棗紅色
- ⚠️ **關鍵注意**:火不能大,否則糖色發苦
## ⚠️ 信息可信度說明
| 標記 | 項目 | 來源 | 時間戳 |
|------|------|------|--------|
| ✅ | 菜名:紅燒肉 | 視頻標題 | — |
| 🤖 | 五花肉用量:約 500g | AI 推斷(視頻說「一塊」) | [00:52] |
| ❓ | 是否加蓋 | 視頻未提及 | — |
資料附帶的質量檢查清單要求:所有操作步驟有對應時間戳;所有 AI 推斷項在可信度說明中標出;文件命名符合 日期_菜名_作者.md;多菜品已拆分;非烹飪內容已被拒絕。
內容分類與安全¶
接受的內容是完整做菜教程、核心操作完整的烹飪演示、含 60% 以上完整操作步驟的烹飪內容。分類依據是視頻標題、描述和轉錄文本前 60 秒內容。
拒絕的內容是探店、美食測評、喫播、無操作過程的純成品展示、食材介紹或科普等非烹飪教學內容。
安全方面,資料寫明僅處理用戶擁有權限或可合法存檔的視頻內容,不繞過 DRM、付費牆或平臺限制。
適用場景與限制¶
適合需要把烹飪視頻沉澱成可檢索、可複用菜譜的場景,尤其是素材量大、人工整理成本高的教學資料歸檔。純文本輸入也能走通,但那樣就沒有時間戳可回溯。
限制也明顯:依賴 ffmpeg、yt-dlp 和網絡可達性;YouTube 需要 cookies;平臺策略會隨接口變化失效,B站 412 和小紅書兜底這類分支本身就是應對手段,不代表穩定可用;超過 30 分鐘的視頻處理時間會明顯變長;分類判斷依賴標題、描述和前 60 秒文本,前段沒有操作內容的視頻可能被誤判。
關於¶
廚神由社區發佈者 user_9ec9e4b3 維護,當前版本 1.0.0,無需 API Key。按抓取資料,SkillHub 頁面顯示評分 100000、下載 941、安裝 0;任務線索裏的評分 99513、下載 817 與頁面數據不一致,這裏以頁面爲準。
官方地址:https://api.skillhub.cn/user_9ec9e4b3/chef-god
SkillHub 頁面:https://www.skillhub.cn/skills/user_9ec9e4b3/chef-god