Bỏ qua

API Endpoint Chỉnh sửa video

Giá cả

35 credits cho mỗi yêu cầu

Chi phí cố định bất kể độ dài video hay kích thước tệp.

Tổng quan

Endpoint https://api.revidapi.com/paid/video/edit là một API linh hoạt và mạnh mẽ cho phép người dùng thực hiện các lệnh chỉnh sửa video bằng cách cung cấp tệp đầu vào, bộ lọc và tùy chọn đầu ra.

Tutorials Chỉnh sửa video

2. Endpoint

URL Path: https://api.revidapi.com/paid/video/edit HTTP Method: POST

3. Yêu cầu

Headers

  • x-api-key (bắt buộc): API key để xác thực.

Tham số Body

Body yêu cầu phải là đối tượng JSON với các thuộc tính sau:

  • inputs (bắt buộc, mảng): Mảng các đối tượng tệp đầu vào, mỗi đối tượng chứa:
  • file_url (bắt buộc, string): URL của tệp đầu vào.
  • Các tham số bổ sung khác tùy thuộc vào thao tác chỉnh sửa. Vui lòng tham khảo Tutorials Chỉnh sửa video để xem tài liệu chi tiết.

Ví dụ yêu cầu

  • Lấy video1.mp4 → cắt từ 10 giây, thời lượng 20 giây.
  • Lấy video2.mp4 → sử dụng toàn bộ video.
{
  "inputs": [
    {
      "file_url": "https://example.com/video1.mp4",
      "options": [
        {
          "option": "-ss",
          "argument": 10
        },
        {
          "option": "-t",
          "argument": 20
        }
      ]
    },
    {
      "file_url": "https://example.com/video2.mp4"
    }
  ],
  "filters": [
    {
      "filter": "hflip"
    }
  ],
  "outputs": [
    {
      "options": [
        {
          "option": "-c:v",
          "argument": "libx264"
        },
        {
          "option": "-crf",
          "argument": 23
        }
      ]
    }
  ],
  "global_options": [
    {
      "option": "-y"
    }
  ],
  "metadata": {
    "thumbnail": true,
    "filesize": true,
    "duration": true,
    "bitrate": true,
    "encoder": true
  },
  "webhook_url": "https://example.com/webhook",
  "id": "unique-request-id"
}
curl -X POST \
  https://api.revidapi.com/paid/video/edit \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "inputs": [
      {
        "file_url": "https://example.com/video1.mp4",
        "options": [
          {
            "option": "-ss",
            "argument": 10
          },
          {
            "option": "-t",
            "argument": 20
          }
        ]
      },
      {
        "file_url": "https://example.com/video2.mp4"
      }
    ],
    "filters": [
      {
        "filter": "hflip"
      }
    ],
    "outputs": [
      {
        "options": [
          {
            "option": "-c:v",
            "argument": "libx264"
          },
          {
            "option": "-crf",
            "argument": 23
          }
        ]
      }
    ],
    "global_options": [
      {
        "option": "-y"
      }
    ],
    "metadata": {
      "thumbnail": true,
      "filesize": true,
      "duration": true,
      "bitrate": true,
      "encoder": true
    },
    "webhook_url": "https://example.com/webhook",
    "id": "unique-request-id"
  }'

Ví dụ Thêm Logo/Hình ảnh vào video

{
  "inputs": [
    {
      "file_url": "https://revidapi.com/video1.mp4"
    },
    {
      "file_url": "https://revidapi.com/logo.png"
    }
  ],
  "filters": [
    {
      "filter": "[1:v]scale=300:100[logo];[0:v][logo]overlay=x=main_w-overlay_w-50:y=50"
    }
  ],
  "outputs": [
    {
      "options": [
        {
          "option": "-f",
          "argument": "mp4"
        },
        {
          "option": "-c:v",
          "argument": "libx264"
        }
      ]
    }
  ],
  "metadata": {
    "thumbnail": true,
    "filesize": true,
    "duration": true,
    "bitrate": true
  },
  "id": "overlay_logo"
}
curl -X POST \
  https://api.revidapi.com/paid/video/edit \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "inputs": [
      {
        "file_url": "https://revidapi.com/video1.mp4"
      },
      {
        "file_url": "https://revidapi.com/logo.png"
      }
    ],
    "filters": [
      {
        "filter": "[1:v]scale=300:100[logo];[0:v][logo]overlay=x=main_w-overlay_w-50:y=50"
      }
    ],
    "outputs": [
      {
        "options": [
          {
            "option": "-f",
            "argument": "mp4"
          },
          {
            "option": "-c:v",
            "argument": "libx264"
          }
        ]
      }
    ],
    "metadata": {
      "thumbnail": true,
      "filesize": true,
      "duration": true,
      "bitrate": true
    },
    "id": "overlay_logo"
  }'

4. Phản hồi

Phản hồi thành công

Phản hồi sẽ được gửi đến webhook_url đã chỉ định dưới dạng đối tượng JSON với các thuộc tính sau:

  • endpoint (string): URL endpoint (https://api.revidapi.com/paid/video/edit).
  • code (number): Mã trạng thái HTTP (200 cho thành công).
  • id (string): Mã định danh duy nhất cho yêu cầu.
  • job_id (string): ID công việc duy nhất được gán cho yêu cầu.
  • response (mảng): Mảng các đối tượng tệp đầu ra, mỗi đối tượng chứa:
  • file_url (string): URL của tệp đầu ra đã tải lên.
  • thumbnail_url (string, tùy chọn): URL của hình thu nhỏ đã tải lên, nếu được yêu cầu.
  • filesize (number, tùy chọn): Kích thước tệp của tệp đầu ra, nếu được yêu cầu.
  • duration (number, tùy chọn): Thời lượng của tệp đầu ra, nếu được yêu cầu.
  • bitrate (number, tùy chọn): Bitrate của tệp đầu ra, nếu được yêu cầu.
  • encoder (string, tùy chọn): Encoder được sử dụng cho tệp đầu ra, nếu được yêu cầu.
  • message (string): Thông báo thành công ("success").
  • pid (number): ID tiến trình của worker xử lý yêu cầu.
  • queue_id (number): ID của hàng đợi được sử dụng để xử lý yêu cầu.
  • run_time (number): Thời gian thực hiện để xử lý yêu cầu (tính bằng giây).
  • queue_time (number): Thời gian yêu cầu ở trong hàng đợi (tính bằng giây).
  • total_time (number): Tổng thời gian thực hiện để xử lý yêu cầu, bao gồm cả thời gian trong hàng đợi (tính bằng giây).
  • queue_length (number): Độ dài hiện tại của hàng đợi xử lý.
  • build_number (string): Số build của ứng dụng.

Phản hồi lỗi

  • 400 Bad Request: Payload yêu cầu không hợp lệ hoặc thiếu tham số bắt buộc.
  • 401 Unauthorized: API key được cung cấp không hợp lệ hoặc thiếu.
  • 429 Too Many Requests: Đã đạt đến độ dài hàng đợi tối đa.
  • 500 Internal Server Error: Đã xảy ra lỗi không mong muốn trong quá trình xử lý yêu cầu.

Ví dụ phản hồi lỗi:

{
  "code": 400,
  "id": "unique-request-id",
  "job_id": "job-id",
  "message": "Invalid request payload: 'inputs' is a required property",
  "pid": 123,
  "queue_id": 456,
  "queue_length": 0,
  "build_number": "1.0.0"
}

5. Xử lý lỗi

API xử lý các loại lỗi khác nhau, bao gồm:

  • Thiếu hoặc tham số không hợp lệ: Nếu payload yêu cầu thiếu tham số bắt buộc hoặc chứa kiểu dữ liệu không hợp lệ, lỗi 400 Bad Request sẽ được trả về.
  • Lỗi xác thực: Nếu API key được cung cấp không hợp lệ hoặc thiếu, lỗi 401 Unauthorized sẽ được trả về.
  • Đạt giới hạn hàng đợi: Nếu đạt đến độ dài hàng đợi tối đa, lỗi 429 Too Many Requests sẽ được trả về.
  • Lỗi không mong muốn: Nếu có lỗi không mong muốn xảy ra trong quá trình xử lý yêu cầu, lỗi 500 Internal Server Error sẽ được trả về.

6. Ghi chú sử dụng

  • Mảng inputs phải chứa ít nhất một đối tượng tệp đầu vào.
  • Mảng outputs phải chứa ít nhất một đối tượng tùy chọn đầu ra.
  • Mảng filters là tùy chọn và có thể được sử dụng để áp dụng bộ lọc chỉnh sửa video cho các tệp đầu vào.
  • Mảng global_options là tùy chọn và có thể được sử dụng để chỉ định các tùy chọn chỉnh sửa video toàn cục.
  • Đối tượng metadata là tùy chọn và có thể được sử dụng để yêu cầu metadata cụ thể cho các tệp đầu ra.
  • Tham số webhook_url là bắt buộc và chỉ định URL nơi phản hồi sẽ được gửi.
  • Tham số id là bắt buộc và nên là mã định danh duy nhất cho yêu cầu.

7. Vấn đề thường gặp

  • Cung cấp URL tệp đầu vào không hợp lệ hoặc sai định dạng.
  • Chỉ định các tùy chọn hoặc bộ lọc chỉnh sửa video không hợp lệ hoặc không được hỗ trợ.
  • Đạt đến độ dài hàng đợi tối đa, dẫn đến lỗi 429 Too Many Requests.
  • Vấn đề mạng hoặc kết nối ngăn cản webhook phản hồi được gửi đi.

8. Best Practices

  • Xác thực URL tệp đầu vào và đảm bảo chúng có thể truy cập được trước khi gửi yêu cầu.
  • Kiểm tra lệnh chỉnh sửa video cục bộ trước khi sử dụng API để đảm bảo nó hoạt động như mong đợi.
  • Theo dõi độ dài hàng đợi và điều chỉnh độ dài hàng đợi tối đa khi cần để tránh quá tải hệ thống.
  • Triển khai cơ chế retry để xử lý việc gửi webhook thất bại hoặc các lỗi tạm thời khác.
  • Sử dụng giá trị id duy nhất và mô tả cho mỗi yêu cầu để hỗ trợ khắc phục sự cố và giám sát.

Kiểm tra Trạng thái Công việc

Sau khi gửi một công việc, bạn có thể kiểm tra trạng thái của nó bằng cách sử dụng job_id được trả về trong phản hồi.

Endpoint

URL Path: https://api.revidapi.com/paid/get/job/status
HTTP Method: POST

Yêu cầu

Headers

  • x-api-key (bắt buộc): API key để xác thực.
  • Content-Type: application/json

Tham số Body

{
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}

Ví dụ Yêu cầu

curl -X POST \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"}' \
  https://api.revidapi.com/paid/get/job/status

Phản hồi

Phản hồi Thành công

{
  "endpoint": "/v1/toolkit/job/status",
  "code": 200,
  "id": null,
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
  "response": {
    "job_status": "done",
    "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
    "queue_id": 140368864456064,
    "process_id": 123456,
    "response": {
      "endpoint": "/v1/endpoint/name",
      "code": 200,
      "id": "request-123",
      "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
      "response": "https://cloud-storage.example.com/output.mp4",
      "message": "success",
      "pid": 123456,
      "queue_id": 140368864456064,
      "run_time": 2.345,
      "queue_time": 0.123,
      "total_time": 2.468,
      "queue_length": 0,
      "build_number": "1.0.0"
    }
  },
  "message": "success",
  "pid": 123456,
  "queue_id": 140368864456064,
  "run_time": 0.001,
  "queue_time": 0.0,
  "total_time": 0.001,
  "queue_length": 0,
  "build_number": "1.0.0"
}

Phản hồi Lỗi

  • 404 Not Found: Nếu không tìm thấy công việc với job_id được cung cấp:
{
  "error": "Job not found",
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}
  • 500 Internal Server Error: Nếu xảy ra lỗi không mong muốn:
{
  "error": "Failed to retrieve job status: <error_message>",
  "code": 500
}