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.
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
inputsphải chứa ít nhất một đối tượng tệp đầu vào. - Mảng
outputsphải chứa ít nhất một đối tượng tùy chọn đầu ra. - Mảng
filterslà 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_optionslà 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
metadatalà 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_urllà bắt buộc và chỉ định URL nơi phản hồi sẽ được gửi. - Tham số
idlà 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ị
idduy 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
}