# n8n Video Search 工作流程 - 成功設定指南 > 建立時間: 2026-03-22 > 適用版本: n8n 2.3.5 --- ## ✅ 成功案例 | 項目 | 內容 | |------|------| | **工作流程名稱** | Video Search - Working v3 | | **ID** | 4vQo8I4SXEaR5E1A | | **狀態** | ✅ 成功運作 | | **測試結果** | 成功搜尋 "charade",返回 3 個結果 | --- ## 正確的 HTTP Request Node 設定 ### 成功的設定方式 ```json { "url": "https://api.momentry.ddns.net/api/v1/n8n/search", "method": "POST", "sendBody": true, "specifyBody": "json", "jsonBody": "{\"query\":\"charade\",\"limit\":3}", "options": {} } ``` ### 關鍵設定說明 | 設定項目 | 正確值 | 錯誤值 | 說明 | |---------|--------|--------|------| | **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 ```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": {} }, "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: 導入工作流程 1. 開啟 n8n UI: `https://n8n.momentry.ddns.net` 2. 點擊 **Add Workflow** (+) 3. 點擊 **Import from File** 4. 選擇上面的 JSON 檔案 ### 步驟 2: 執行測試 1. 點擊 **"Execute Workflow"** 按鈕 (▶️) 2. 等待執行完成 3. 點擊 **"Show Result"** 節點 4. 查看右側 **JSON** 面板 ### 步驟 3: 修改搜尋關鍵字 1. 點擊 **"Search API"** 節點 2. 修改 `jsonBody`: ```json "{\"query\":\"您的關鍵字\",\"limit\":5}" ``` 3. 點擊 **Save** (Ctrl+S) 4. 重新執行 --- ## 成功的回應範例 ```json { "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, "media_url": "https://wp.momentry.ddns.net/Old_Time_Movie_Show_-_Charade_1963.HD.mov" } ] } ``` --- ## 常見錯誤與解決 ### ❌ 錯誤 1: "Your request is invalid" **原因**: `specifyBody` 設為 `"body"` 而不是 `"json"` **解決**: ```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 ```bash curl -X POST https://api.momentry.ddns.net/api/v1/n8n/search \ -H "Content-Type: application/json" \ -d '{"query":"charade","limit":3}' ``` ### 驗證服務狀態 ```bash # 檢查 Momentry Core curl https://api.momentry.ddns.net/api/v1/videos # 檢查 n8n curl http://localhost:5678/api/v1/workflows \ -H "X-N8N-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 觸發器 如果你想從外部呼叫這個工作流程: 1. 在第一個節點前添加 **Webhook** Node 2. 設定: ``` Method: POST Path: video-search Response Mode: Last Node ``` 3. 將 Webhook 連接到 Search API 4. 儲存並執行 5. 使用生成的 Webhook URL 呼叫: ```bash curl -X POST \ -d '{"query":"charade","limit":3}' ``` ### 使用動態變數 修改 jsonBody 使用表達式: ```json "{\"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 工作流程! **關鍵成功要素**: 1. ✅ 使用 `specifyBody: "json"` 2. ✅ 使用 `jsonBody` 字串格式 3. ✅ 正確轉義 JSON 引號 4. ✅ 使用外部 API URL (`https://api.momentry.ddns.net`)