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ạnghh: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ạnghh: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"
}
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-keybị 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-keybị 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_urlphải là URL hợp lệ trỏ đến tệp phương tiện (video hoặc âm thanh). - Tham số
cutsphả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ạnghh: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_urllà 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ố
idlà 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_urlkhô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_lengthtrong 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
}