7.1 KiB
7.1 KiB
n8n Video Search 工作流程 - 成功設定指南
| 項目 | 內容 |
|---|---|
| 建立者 | Warren |
| 建立時間 | 2026-03-22 |
| 文件版本 | V1.1 |
| 適用版本 | n8n 2.3.5 |
版本歷史
| 版本 | 日期 | 目的 | 操作人 | 工具/模型 |
|---|---|---|---|---|
| V1.0 | 2026-03-22 | 創建文件 | Warren | OpenCode |
| V1.1 | 2026-03-26 | 更新 API 範例,新增 X-API-Key 驗證標頭 | OpenCode | deepseek-reasoner |
✅ 成功案例
| 項目 | 內容 |
|---|---|
| 工作流程名稱 | Video Search - Working v3 |
| ID | 4vQo8I4SXEaR5E1A |
| 狀態 | ✅ 成功運作 |
| 測試結果 | 成功搜尋 "charade",返回 3 個結果 |
正確的 HTTP Request Node 設定
成功的設定方式
{
"url": "https://api.momentry.ddns.net/api/v1/n8n/search",
"method": "POST",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"query\":\"charade\",\"limit\":3}",
"options": {
"headers": {
"X-API-Key": "demo_api_key_12345"
}
}
}
關鍵設定說明
| 設定項目 | 正確值 | 錯誤值 | 說明 |
|---|---|---|---|
| specifyBody | "json" |
"body" |
必須選擇 "json" |
| jsonBody | 字串 "{...}" |
物件 {} |
必須是 JSON 字串格式 |
| 轉義 | \"query\" |
"query" |
引號需要轉義 |
工作流程架構
┌─────────────────────────┐
│ Manual Trigger │ ← 點擊 "Execute Workflow"
└───────────┬─────────────┘
│
▼
┌─────────────────────────┐
│ HTTP Request Node │ ← 呼叫 Momentry API
│ - specifyBody: "json" │
│ - jsonBody: "{...}" │
└───────────┬─────────────┘
│
▼
┌─────────────────────────┐
│ Code Node │ ← 格式化輸出
│ - console.log() │
│ - return json │
└─────────────────────────┘
完整的 Workflow JSON
{
"name": "Video Search - Working v3",
"nodes": [
{
"parameters": {},
"name": "When clicking \"Execute Workflow\"",
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"url": "https://api.momentry.ddns.net/api/v1/n8n/search",
"method": "POST",
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\"query\":\"charade\",\"limit\":3}",
"options": {
"headers": {
"X-API-Key": "demo_api_key_12345"
}
}
},
"name": "Search API",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.1,
"position": [450, 300]
},
{
"parameters": {
"jsCode": "const data = $input.first().json;\nconsole.log('Response:', JSON.stringify(data, null, 2));\nreturn [{ json: data }];"
},
"name": "Show Result",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [650, 300]
}
],
"connections": {
"When clicking \"Execute Workflow\"": {
"main": [[{"node": "Search API", "type": "main", "index": 0}]]
},
"Search API": {
"main": [[{"node": "Show Result", "type": "main", "index": 0}]]
}
},
"settings": {"executionOrder": "v1"},
"staticData": null
}
使用步驟
步驟 1: 導入工作流程
- 開啟 n8n UI:
https://n8n.momentry.ddns.net - 點擊 Add Workflow (+)
- 點擊 Import from File
- 選擇上面的 JSON 檔案
步驟 2: 執行測試
- 點擊 "Execute Workflow" 按鈕 (▶️)
- 等待執行完成
- 點擊 "Show Result" 節點
- 查看右側 JSON 面板
步驟 3: 修改搜尋關鍵字
- 點擊 "Search API" 節點
- 修改
jsonBody:"{\"query\":\"您的關鍵字\",\"limit\":5}" - 點擊 Save (Ctrl+S)
- 重新執行
成功的回應範例
{
"query": "charade",
"count": 3,
"hits": [
{
"id": "sentence_0006",
"vid": "a1b10138a6bbb0cd",
"start": 48.8,
"end": 55.44,
"title": "Chunk sentence_0006",
"text": "fun plot twists, Woody Dialog and charming performances...",
"score": 0.526,
"file_path": "/Users/accusys/momentry/var/sftpgo/data/demo/Old_Time_Movie_Show_-_Charade_1963.HD.mov"
}
]
}
常見錯誤與解決
❌ 錯誤 1: "Your request is invalid"
原因: specifyBody 設為 "body" 而不是 "json"
解決:
✅ "specifyBody": "json"
❌ "specifyBody": "body"
❌ 錯誤 2: "$httpRequest is not defined"
原因: Code Node 中使用 $httpRequest,但您的 n8n 版本不支援
解決: 使用 HTTP Request Node 代替 Code Node
❌ 錯誤 3: Body 格式錯誤
原因: body 使用物件格式 {query: "..."}
解決: 使用 jsonBody 字串格式 {"query":"..."}
❌ 錯誤 4: JSON 引號未轉義
原因: "{query: "charade"}" - 引號衝突
解決: \" 轉義 "{\"query\":\"charade\"}"
測試指令
直接測試 API
curl -X POST https://api.momentry.ddns.net/api/v1/n8n/search \
-H "Content-Type: application/json" \
-H "X-API-Key: demo_api_key_12345" \
-d '{"query":"charade","limit":3}'
驗證服務狀態
# 檢查 Momentry Core
curl -H "X-API-Key: demo_api_key_12345" https://api.momentry.ddns.net/api/v1/videos
# 檢查 n8n
curl http://localhost:5678/api/v1/workflows \
-H "X-N8N-API-KEY: <your_api_key>"
服務資訊
| 服務 | URL | 說明 |
|---|---|---|
| n8n UI | https://n8n.momentry.ddns.net | 工作流程管理 |
| Momentry API | https://api.momentry.ddns.net | 影片搜尋 API |
| 工作流程 | https://n8n.momentry.ddns.net/workflow/4vQo8I4SXEaR5E1A | 成功案例 |
進階使用
添加 Webhook 觸發器
如果你想從外部呼叫這個工作流程:
- 在第一個節點前添加 Webhook Node
- 設定:
Method: POST Path: video-search Response Mode: Last Node - 將 Webhook 連接到 Search API
- 儲存並執行
- 使用生成的 Webhook URL 呼叫:
curl -X POST <webhook_url> \ -d '{"query":"charade","limit":3}'
使用動態變數
修改 jsonBody 使用表達式:
"{\"query\":\"={{ $json.query }}\",\"limit\":{{ $json.limit }}}"
然後在前面添加 Set Node 設定變數。
相關文件
docs/N8N_SETUP_COMPLETE.md- 完整設定總結docs/N8N_HTTP_REQUEST_GUIDE.md- HTTP Request 詳細指南docs/API_URL_EXAMPLES.md- API URL 範例
完成!🎉
您現在擁有一個可以成功搜尋影片的 n8n 工作流程!
關鍵成功要素:
- ✅ 使用
specifyBody: "json" - ✅ 使用
jsonBody字串格式 - ✅ 正確轉義 JSON 引號
- ✅ 使用外部 API URL (
https://api.momentry.ddns.net)