Files
momentry_core/docs/N8N_VIDEO_SEARCH_SUCCESS.md

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: 導入工作流程

  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:
    "{\"query\":\"您的關鍵字\",\"limit\":5}"
    
  3. 點擊 Save (Ctrl+S)
  4. 重新執行

成功的回應範例

{
  "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 觸發器

如果你想從外部呼叫這個工作流程:

  1. 在第一個節點前添加 Webhook Node
  2. 設定:
    Method: POST
    Path: video-search
    Response Mode: Last Node
    
  3. 將 Webhook 連接到 Search API
  4. 儲存並執行
  5. 使用生成的 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 工作流程!

關鍵成功要素:

  1. 使用 specifyBody: "json"
  2. 使用 jsonBody 字串格式
  3. 正確轉義 JSON 引號
  4. 使用外部 API URL (https://api.momentry.ddns.net)