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 thời lượng cắt.
1. Tổng quan
Endpoint https://api.revidapi.com/paid/video/trim là một phần của Video API và cho phép người dùng cắt video bằng cách loại bỏ các phần được chỉ định từ đầu và/hoặc cuối. Nó cũng cung cấp các cài đặt mã hóa tùy chọn để kiểm soát chất lượng video đầu ra.
2. Endpoint
URL Path: https://api.revidapi.com/paid/video/trim
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
video_url(bắt buộc, string): URL của tệp video cần cắt.start(tùy chọn, string): Thời gian bắt đầu để cắt theo định dạnghh:mm:sshoặcmm:ss.end(tùy chọn, string): Thời gian kết thúc để cắt theo định dạnghh:mm:sshoặcmm:ss.video_codec(tùy chọn, string): Codec video để sử dụng cho việc mã hóa video đầ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 video đầ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, 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 video đầ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 video đầ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.
Directive validate_payload trong tệp routes đảm bảo rằng payload yêu cầu tuân theo schema đã chỉ định, bao gồm các tham số bắt buộc và tùy chọn, kiểu dữ liệu của chúng, và bất kỳ ràng buộc bổ sung nào.
Ví dụ yêu cầu
{
"video_url": "https://example.com/video.mp4",
"start": "00:01:00",
"end": "00:03:00",
"video_codec": "libx264",
"video_preset": "faster",
"video_crf": 28,
"audio_codec": "aac",
"audio_bitrate": "128k",
"webhook_url": "https://example.com/webhook",
"id": "unique-request-id"
}
curl -X POST \
https://api.revidapi.com/paid/video/trim \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"video_url": "https://example.com/video.mp4",
"start": "00:01:00",
"end": "00:03:00",
"video_codec": "libx264",
"video_preset": "faster",
"video_crf": 28,
"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ụ:
{
"endpoint": "/v1/video/trim",
"code": 200,
"id": "unique-request-id",
"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
"response": "https://example.com/trimmed-video.mp4",
"message": "success",
"pid": 12345,
"queue_id": 6789,
"run_time": 5.234,
"queue_time": 0.123,
"total_time": 5.357,
"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 chứa tham số 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 trong quá trình cắt video.
{
"code": 500,
"message": "An error occurred during the video trimming process"
}
5. Xử lý lỗi
Endpoint xử lý các lỗi phổ biến như thiếu hoặc tham số không hợp lệ bằng cách trả về các mã trạng thái HTTP và thông báo lỗi phù hợp. Decorator validate_payload đảm bảo rằng payload yêu cầu tuân theo schema đã chỉ định, và bất kỳ vi phạm nào sẽ dẫn đến lỗi 400 Bad Request.
Ngữ cảnh ứng dụng chính (app.py) bao gồm xử lý lỗi cho hàng đợi tác vụ. Nếu đạt đến độ dài hàng đợi tối đa, endpoint sẽ trả về lỗi 429 Too Many Requests với thông báo tương ứng.
6. Ghi chú sử dụng
- Các tham số
startvàendlà tùy chọn, nhưng ít nhất một trong số chúng phải được cung cấp để thực hiện thao tác cắt. - Các tham số
video_codec,video_preset,video_crf,audio_codec, vàaudio_bitratelà tùy chọn và cho phép người dùng tùy chỉnh cài đặt mã hóa cho video đầu ra. - Tham số
webhook_urllà tùy chọn và có thể được sử dụng để nhận thông báo khi tác vụ hoàn tất. - 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
video_urlkhông hợp lệ hoặc không thể truy cập. - Chỉ định giá trị không hợp lệ hoặc không được hỗ trợ cho các tham số mã hóa (
video_codec,video_preset,video_crf,audio_codec,audio_bitrate). - Gặp phải vấn đề với quá trình cắt video do định dạng video không được hỗ trợ hoặc tệp bị hỏng.
8. Thực hành tốt nhất
- Xác thực tham số
video_urlđể đảm bảo nó trỏ đến tệp video hợp lệ và có thể truy cập. - Sử dụng cài đặt mã hóa phù hợp dựa trên yêu cầu chất lượng đầu ra và kích thước tệp mong muốn.
- Triển khai xử lý lỗi và cơ chế thử lại cho các yêu cầu thất bại hoặc vấn đề mạng.
- Giám sát độ dài hàng đợi tác vụ và điều chỉnh giá trị
MAX_QUEUE_LENGTHtương ứng để tránh quá tải hệ thống. - Triển khai cơ chế giới hạn tốc độ hoặc điều tiết để tránh lạm dụng hoặc yêu cầu quá mức.
Giá cả
35 credits cho mỗi yêu cầu
Chi phí cố định bất kể độ dài video hay thời lượng 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
}