Files
momentry_core/docs/N8N_DEMO_EXECUTION_LOG.md
accusys 383201cacd feat: Initial v0.9 release with API Key authentication
## v0.9.20260325_144654

### Features
- API Key Authentication System
- Job Worker System
- V2 Backup Versioning

### Bug Fixes
- get_processor_results_by_job column mapping

Co-authored-by: OpenCode
2026-03-25 14:53:41 +08:00

7.2 KiB

n8n Video RAG Demo - API 執行記錄

建立時間: 2026-03-22 目標: 完整執行 n8n Video RAG Workflow 並記錄所有 API 呼叫


Phase 1: SFTPGo 準備

Step 1.1: 取得 Demo User Token

API 呼叫:

curl -X GET "http://localhost:8080/api/v2/user/token" \
  -u "demo:demopassword123"

Request:

GET /api/v2/user/token
Authorization: Basic ZG9tbzpkZW1vcGFzc3dvcmQxMjM=

Response (200 OK):

{
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "expires_at": "2026-03-22T07:05:57Z"
}

Token 有效期限: 20 分鐘

Session Token (Demo User):

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiQVBJVXNlciIsIjo6MSJdLCJleHAiOjE3NzQxNjMxNTcsImlhdCI6MTc3NDE2MTk1NywianRpIjoiZDZ2cDA5YWcyZnIwMnY3aTlybDAiLCJuYmYiOjE3NzQxNjE5NDcsInN1YiI6IjE3NzQxNjE5NTM0OTMiLCJ1c2VybmFtZSI6ImRlbW8ifQ.yw0UCv8sQXXCkOr7qmK2ejLzuoA8IDrmC9bpgFE4R_Q

結果: 成功


Step 1.2: 上傳測試影片到 SFTPGo

影片選擇: Old_Time_Movie_Show_-_Charade_1963.HD.mov (2.3 GB)

  • 路徑: /Users/accusys/test_video/Old_Time_Movie_Show_-_Charade_1963.HD.mov
  • ASR Segments: 1,917 (已預處理)

API 呼叫:

TOKEN="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
curl -X POST "http://localhost:8080/api/v2/user/files" \
  -H "Authorization: Bearer $TOKEN" \
  -F "path=/demo" \
  -F "mkdir_parents=true" \
  -F "filenames=@/Users/accusys/test_video/Old_Time_Movie_Show_-_Charade_1963.HD.mov"

Request:

POST /api/v2/user/files
Authorization: Bearer <token>
Content-Type: multipart/form-data

path: /demo
mkdir_parents: true
filenames: @/path/to/Old_Time_Movie_Show_-_Charade_1963.HD.mov

Response (201 Created):

{"message":"Upload completed"}

上傳統計:

  • 檔案大小: 2,361,629,896 bytes (2.3 GB)
  • 上傳時間: 7 秒
  • 平均速度: ~337 MB/s

結果: 成功


Step 1.3: 建立分享連結

API 呼叫:

curl -X POST "http://localhost:8080/api/v2/user/shares" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Charade_1963_Demo",
    "paths": ["/Old_Time_Movie_Show_-_Charade_1963.HD.mov"],
    "scope": 1,
    "expires_at": 0
  }'

Request:

POST /api/v2/user/shares
Authorization: Bearer <token>
Content-Type: application/json

{
  "name": "Charade_1963_Demo",
  "paths": ["/Old_Time_Movie_Show_-_Charade_1963.HD.mov"],
  "scope": 1,
  "expires_at": 0
}

Response (200 OK):

{"message":"Share created"}

結果: 成功


Step 1.4: 驗證上傳結果

API 呼叫 - 列出分享:

curl -X GET "http://localhost:8080/api/v2/user/shares" \
  -H "Authorization: Bearer $TOKEN"

Response:

[
  {
    "id": "CjmQfrkXY5qDtC46WVZY2S",
    "name": "Charade_1963_Demo",
    "scope": 1,
    "paths": [
      "/Old_Time_Movie_Show_-_Charade_1963.HD.mov"
    ],
    "username": "demo",
    "created_at": 1774162072853,
    "updated_at": 1774162072853,
    "password": ""
  }
]

分享連結:

  • Share ID: CjmQfrkXY5qDtC46WVZY2S
  • Browse URL: http://localhost:8080/web/client/pubshares/CjmQfrkXY5qDtC46WVZY2S/browse

本地目錄驗證:

/Users/accusys/sftpgo_test/demo/
└── Old_Time_Movie_Show_-_Charade_1963.HD.mov (2,361,629,896 bytes)

結果: 成功


Phase 2: Momentry 註冊

Step 2.1: 健康檢查

API 呼叫:

curl -X GET "http://localhost:3002/health"

Response:

(待填寫)

Step 2.2: 註冊影片

API 呼叫:

curl -X POST "http://localhost:3002/api/v1/register" \
  -H "Content-Type: application/json" \
  -d '{
    "path": "/Users/accusys/sftpgo_test/demo/Old_Time_Movie_Show_-_Charade_1963.HD.mov"
  }'

Request:

POST /api/v1/register
Content-Type: application/json

{
  "path": "/Users/accusys/sftpgo_test/demo/Old_Time_Movie_Show_-_Charade_1963.HD.mov"
}

Response:

(待填寫)
{
  "uuid": "...",
  "video_id": ...,
  "file_name": "...",
  "duration": ...,
  "width": ...,
  "height": ...
}

Phase 3: 處理進度追蹤

Step 3.1: 查詢處理進度 (新版 API)

API 呼叫:

curl -X GET "http://localhost:3002/api/v1/progress/{uuid}"

Response (新版 - 包含影片資訊與系統資源):

{
  "uuid": "a1b10138a6bbb0cd",
  "user": null,
  "group": null,
  "file_name": "Old_Time_Movie_Show_-_Charade_1963.HD.mov",
  "duration": 6879.33,
  "overall_progress": 28,
  "cpu_percent": 3.7,
  "gpu_percent": null,
  "memory_percent": 0.1,
  "memory_mb": 19328,
  "processors": [
    {"name": "asr", "status": "complete", "current": 1867, "total": 0, "progress": 100, "message": "1867 segments"},
    {"name": "cut", "status": "complete", "current": 1331, "total": 1331, "progress": 100, "message": "1331 scenes"},
    {"name": "asrx", "status": "error", "current": 0, "total": 0, "progress": 0, "message": "0 segments"},
    {"name": "yolo", "status": "progress", "current": 69400, "total": 412343, "progress": 16, "message": "frame 69400"},
    {"name": "ocr", "status": "pending", "current": 0, "total": 0, "progress": 0, "message": ""},
    {"name": "face", "status": "pending", "current": 0, "total": 0, "progress": 0, "message": ""},
    {"name": "pose", "status": "pending", "current": 0, "total": 0, "progress": 0, "message": ""}
  ]
}

欄位說明:

欄位 說明
uuid 影片唯一識別碼
user 處理所屬用戶 (如已設定)
group 處理所屬群組 (如已設定)
file_name 影片檔案名稱
duration 影片時長 (秒)
overall_progress 整體進度 (百分比)
cpu_percent CPU 使用率 (%)
gpu_percent GPU 使用率 (%),無 GPU 則為 null
memory_percent 記憶體使用率 (%)
memory_mb 記憶體使用量 (MB)
processors 各處理器狀態陣列

---

## Phase 4: 自然語言檢索

### Step 4.1: RAG 搜尋

**API 呼叫:**
```bash
curl -X POST "http://localhost:3002/api/v1/search" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What is the movie about?",
    "limit": 10,
    "uuid": "..."
  }'

Request:

POST /api/v1/search
Content-Type: application/json

{
  "query": "What is the movie about?",
  "limit": 10,
  "uuid": "<uuid from registration>"
}

Response:

(待填寫)

Step 4.2: n8n 搜尋 (含 media_url)

API 呼叫:

curl -X POST "http://localhost:3002/api/v1/n8n/search" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What is the movie about?",
    "limit": 10,
    "uuid": "..."
  }'

Response:

(待填寫)

憑證彙整

服務 項目
SFTPGo API Base http://localhost:8080/api/v2
SFTPGo Demo User demo
SFTPGo Demo Password demopassword123 (已重設)
SFTPGo Demo Home /Users/accusys/sftpgo_test/demo
SFTPGo Token Endpoint /api/v2/user/token
SFTPGo Share ID CjmQfrkXY5qDtC46WVZY2S
Momentry Server http://localhost:3002
Momentry MEDIA_BASE_URL https://wp.momentry.ddns.net

版本歷史

日期 版本 變更
2026-03-22 v1.0 初始建立文件
2026-03-22 v1.1 成功取得 Demo Token
2026-03-22 v1.2 Phase 1 完成 (上傳 Charade 2.3GB)