Bỏ qua

Endpoint Cắt video

Giá cả

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

Chi phí cố định bất kể độ dài video hay số lượng đoạn cắt.

1. Tổng quan

Endpoint https://api.revidapi.com/paid/video/cut là một phần của ứng dụng Flask API và được thiết kế để cắt các đoạn được chỉ định từ tệp phương tiện (video hoặc âm thanh) với tùy chọn cài đặt mã hóa.

2. Endpoint

URL Path: https://api.revidapi.com/paid/video/cut 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:

  • media_url (bắt buộc, string): URL của tệp phương tiện cần cắt.
  • cuts (bắt buộc, mảng các đối tượng): Mảng các đoạn cắt, trong đó mỗi đối tượng có các thuộc tính sau:
  • start (bắt buộc, string): Thời gian bắt đầu của đoạn cắt theo định dạng hh:mm:ss.ms.
  • end (bắt buộc, string): Thời gian kết thúc của đoạn cắt theo định dạng hh:mm:ss.ms.
  • video_codec (tùy chọn, string): Codec video để sử dụng cho việc mã hóa tệp đầu ra. Mặc định là libx264.
  • video_preset (tùy chọn, string): Preset video để sử dụng cho việc mã hóa tệp đầu ra. Mặc định là medium.
  • video_crf (tùy chọn, number): Giá trị Constant Rate Factor (CRF) cho mã hóa video. Phải nằm trong khoảng từ 0 đến 51. Mặc định là 23.
  • audio_codec (tùy chọn, string): Codec âm thanh để sử dụng cho việc mã hóa tệp đầu ra. Mặc định là aac.
  • audio_bitrate (tùy chọn, string): Bitrate âm thanh để sử dụng cho việc mã hóa tệp đầu ra. Mặc định là 128k.
  • webhook_url (tùy chọn, string): URL để nhận thông báo webhook khi hoàn tất tác vụ.
  • id (tùy chọn, string): Mã định danh duy nhất cho yêu cầu.

Ví dụ yêu cầu

{
  "media_url": "https://example.com/video.mp4",
  "cuts": [
    {
      "start": "00:00:10.000",
      "end": "00:00:20.000"
    },
    {
      "start": "00:00:30.000",
      "end": "00:00:40.000"
    }
  ],
  "video_codec": "libx264",
  "video_preset": "medium",
  "video_crf": 23,
  "audio_codec": "aac",
  "audio_bitrate": "128k",
  "webhook_url": "https://example.com/webhook",
  "id": "unique-request-id"
}
| Đoạn| Bắt đầu | Kết thúc| Thời lượng| |-----|------|-------------|-------------| | 1 |00:00:10.000| 00:00:20.000 | 10 giây | | 2 | 00:00:30.000 | 00:00:40.000 |10 giây

Minh họa cắt video

Dưới đây là hình minh họa SVG (nhúng dưới dạng hình ảnh Base64 để StackEdit có thể hiển thị):

curl -X POST \
  https://api.revidapi.com/paid/video/cut \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "media_url": "https://example.com/video.mp4",
    "cuts": [
      {
        "start": "00:00:10.000",
        "end": "00:00:20.000"
      },
      {
        "start": "00:00:30.000",
        "end": "00:00:40.000"
      }
    ],
    "video_codec": "libx264",
    "video_preset": "medium",
    "video_crf": 23,
    "audio_codec": "aac",
    "audio_bitrate": "128k",
    "webhook_url": "https://example.com/webhook",
    "id": "unique-request-id"
  }'

4. Phản hồi

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

Phản hồi thành công tuân theo cấu trúc phản hồi chung được định nghĩa trong tệp app.py. Đây là ví dụ:

{
  "code": 200,
  "id": "unique-request-id",
  "job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
  "response": {
    "file_url": "https://example.com/output.mp4"
  },
  "message": "success",
  "run_time": 5.234,
  "queue_time": 0.012,
  "total_time": 5.246,
  "pid": 12345,
  "queue_id": 1234567890,
  "queue_length": 0,
  "build_number": "1.0.0"
}

Phản hồi lỗi

  • 400 Bad Request: Được trả về khi payload yêu cầu bị thiếu hoặc không hợp lệ.
{
  "code": 400,
  "message": "Invalid request payload"
}
  • 401 Unauthorized: Được trả về khi header x-api-key bị thiếu hoặc không hợp lệ.
{
  "code": 401,
  "message": "Unauthorized"
}
  • 500 Internal Server Error: Được trả về khi có lỗi không mong muốn xảy ra trên server.
{
  "code": 500,
  "message": "Internal Server Error"
}

5. Xử lý lỗi

Endpoint xử lý các lỗi phổ biến sau:

  • Thiếu hoặc tham số yêu cầu không hợp lệ: Trả về lỗi 400 Bad Request.
  • Lỗi xác thực: Trả về lỗi 401 Unauthorized nếu header x-api-key bị thiếu hoặc không hợp lệ.
  • Ngoại lệ không mong muốn: Trả về lỗi 500 Internal Server Error nếu có ngoại lệ không mong muốn xảy ra trong quá trình cắt phương tiện.

Ngữ cảnh ứng dụng chính (app.py) cũng bao gồm xử lý lỗi cho quá tải hàng đợi. Nếu đạt đến độ dài hàng đợi tối đa, endpoint trả về lỗi 429 Too Many Requests.

6. Ghi chú sử dụng

  • Tham số media_url phải là URL hợp lệ trỏ đến tệp phương tiện (video hoặc âm thanh).
  • Tham số cuts phải là mảng các đối tượng, trong đó mỗi đối tượng chỉ định thời gian bắt đầu và kết thúc cho một đoạn cắt theo định dạng hh:mm:ss.ms.
  • Các tham số mã hóa tùy chọn (video_codec, video_preset, video_crf, audio_codec, audio_bitrate) có thể được sử dụng để tùy chỉnh cài đặt mã hóa tệp đầu ra.
  • Tham số webhook_url là tùy chọn và có thể được sử dụng để nhận thông báo webhook khi hoàn tất tác vụ.
  • Tham số id là tùy chọn và có thể được sử dụng để xác định duy nhất yêu cầu.

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

  • Cung cấp media_url không hợp lệ hoặc không thể truy cập.
  • Cung cấp giá trị không hợp lệ hoặc ngoài phạm vi cho các tham số mã hóa.
  • Cung cấp các đoạn cắt trùng lặp hoặc không hợp lệ trong tham số cuts.

8. Thực hành tốt nhất

  • Xác thực các tham số đầu vào ở phía máy khách trước khi gửi yêu cầu.
  • Sử dụng tham số webhook_url để nhận thông báo và xử lý phản hồi không đồng bộ.
  • Giám sát tham số queue_length trong phản hồi để quản lý tải trên API.
  • Sử dụng tham số id để tương quan các yêu cầu và phản hồi để theo dõi và gỡ lỗi tốt hơn.

Giá cả

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

Chi phí cố định bất kể độ dài video hay số lượng đoạn cắ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
}