Cách tích hợp n8n với Sora2 API: Hướng dẫn từng bước

Tìm hiểu cách tự động hóa việc tạo video AI bằng cách tích hợp Sora2 API với n8n. Hướng dẫn đầy đủ từ thiết lập khóa API đến kiểm tra kết quả.

Giới thiệu

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tự động hóa việc tạo video AI bằng cách tích hợp Sora2 API với n8n, công cụ tự động hóa quy trình làm việc mạnh mẽ. Cuối hướng dẫn này, bạn sẽ có thể kích hoạt tạo video cấp chuyên nghiệp từ bất kỳ nguồn dữ liệu nào (như Google Sheets, Telegram hoặc cơ sở dữ liệu Airtable) một cách tự động.

Điều kiện tiên quyết
  • Tài khoản Sora2 API với gói đăng ký đang hoạt động.
  • Một phiên bản n8n (tự lưu trữ hoặc Cloud).
  • Hiểu biết cơ bản về JSON và các yêu cầu HTTP.
Các bước tích hợp
1

1. Tạo khóa Sora2 API của bạn

Trước khi chuyển sang n8n, bạn cần thông tin xác thực của mình. Đăng nhập vào Sora2 API, điều hướng đến phần Khóa API và tạo một khóa mới bắt đầu bằng 'sk-'.

Bước 1: Lấy khóa API của bạn từ bảng điều khiển

Bước 1: Lấy khóa API của bạn từ bảng điều khiển

2

2. Thiết lập nút tạo video

Trong n8n, thêm một nút HTTP Request. Đặt Method thành POST, URL thành https://sora2api.org/api/generate-video và sử dụng Header Auth với 'Authorization: Bearer YOUR_API_KEY'.

Bước 2: Cấu hình yêu cầu HTTP để tạo video

Bước 2: Cấu hình yêu cầu HTTP để tạo video

3

3. Lấy ID tác vụ

API sẽ trả về một taskId. Lưu ID này để kiểm tra trạng thái tạo video của bạn sau này.

4

4. Thực hiện logic chờ và kiểm tra

Thêm một nút Wait trong 30 giây, sau đó một nút HTTP Request khác để gọi /api/check-video-status với taskId.

Bước 4: Cấu hình nút Wait để kiểm tra

Bước 4: Cấu hình nút Wait để kiểm tra

Bước 4: Kiểm tra phản hồi thành công và URL video

Bước 4: Kiểm tra phản hồi thành công và URL video

5

5. Kiểm tra trạng thái và lặp lại

Sử dụng một nút If để kiểm tra xem trạng thái có phải là 'succeeded' hay không. Nếu không, lặp lại bước chờ.

Bước 5: Sử dụng nút IF để kiểm tra trạng thái

Bước 5: Sử dụng nút IF để kiểm tra trạng thái

Nhập một lần nhấp: Mẫu quy trình làm việc
Sao chép JSON bên dưới và dán trực tiếp vào không gian làm việc n8n của bạn để có quy trình làm việc được định cấu hình sẵn ngay lập tức.
{
  "name": "Sora2Api-Workflow-Template",
  "nodes": [
    {
      "parameters": {},
      "type": "n8n-nodes-base.manualTrigger",
      "typeVersion": 1,
      "position": [0, 0],
      "name": "When clicking ‘Execute workflow’"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://sora2api.org/api/generate-video",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"prompt\": \"A beautiful sunset over the ocean\",\n  \"aspectRatio\": \"16:9\",\n  \"type\": \"text2video\",\n  \"duration\": 10\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [250, 0],
      "name": "Start Video Generation"
    },
    {
      "parameters": {
        "amount": 30
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [500, 0],
      "name": "Wait 30s"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://sora2api.org/api/check-video-status",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "taskId",
              "value": "={{ $json.data.taskId }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [750, 0],
      "name": "Check Status"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "leftValue": "={{ $json.data.status }}",
              "rightValue": "succeeded",
              "operator": {
                "type": "string",
                "operation": "equals",
                "name": "equals"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [1000, 0],
      "name": "Check if Succeeded"
    },
    {
      "parameters": {
        "assignments": {
          "assignments": [
            {
              "name": "Final_Video_URL",
              "value": "={{ $json.data.videoUrl }}",
              "type": "string"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [1250, -100],
      "name": "Final Result"
    }
  ],
  "connections": {
    "When clicking ‘Execute workflow’": {
      "main": [[{"node": "Start Video Generation", "type": "main", "index": 0}]]
    },
    "Start Video Generation": {
      "main": [[{"node": "Wait", "type": "main", "index": 0}]]
    },
    "Wait": {
      "main": [[{"node": "Check Status", "type": "main", "index": 0}]]
    },
    "Check Status": {
      "main": [[{"node": "Check if Succeeded", "type": "main", "index": 0}]]
    },
    "Check if Succeeded": {
      "main": [
        [{"node": "Final Result", "type": "main", "index": 0}],
        [{"node": "Wait", "type": "main", "index": 0}]
      ]
    }
  }
}

Sẵn sàng bắt đầu chưa?

Tạo quy trình tạo video AI tự động đầu tiên của bạn ngay hôm nay.

Bắt đầu