Endpoint Chia tách 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 chia tách.
1. Tổng quan
Endpoint https://api.revidapi.com/paid/video/split là một phần của Video API và được sử dụng để chia tách một tệp video thành nhiều đoạn dựa trên thời gian bắt đầu và kết thúc được chỉ định.
2. Endpoint
URL Path: https://api.revidapi.com/paid/video/split
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:
video_url(bắt buộc, string): URL của tệp video cần chia tách.splits(bắt buộc, mảng các đối tượng): Mảng các đối tượng chỉ định thời gian bắt đầu và kết thúc cho mỗi đoạn chia tách. Mỗi đối tượng phải có các thuộc tính sau:start(bắt buộc, string): Thời gian bắt đầu của đoạn chia tách theo định dạnghh:mm:ss.ms.end(bắt buộc, string): Thời gian kết thúc của đoạn chia tách 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 các video đã chia tách. Mặc định làlibx264.video_preset(tùy chọn, string): Preset video để sử dụng cho việc mã hóa các video đã chia tách. 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 các video đã chia tách. Mặc định làaac.audio_bitrate(tùy chọn, string): Bitrate âm thanh để sử dụng cho việc mã hóa các video đã chia tách. Mặc định là128k.webhook_url(tùy chọn, string): URL để nhận thông báo webhook khi thao tác chia tách hoàn tất.id(tùy chọn, string): Mã định danh duy nhất cho yêu cầu.
Ví dụ yêu cầu
{
"video_url": "https://example.com/video.mp4",
"splits": [
{
"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"
}
curl -X POST \
https://api.revidapi.com/paid/video/split \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"video_url": "https://example.com/video.mp4",
"splits": [
{
"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 định dạng phản hồi chung được chỉ định trong app.py. Đây là ví dụ:
{
"endpoint": "/v1/video/split",
"code": 200,
"id": "unique-request-id",
"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
"response": [
{
"file_url": "https://example.com/split-1.mp4"
},
{
"file_url": "https://example.com/split-2.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"
}
Trường response chứa mảng các đối tượng, mỗi đối tượng đại diện cho một tệp video đã chia tách. Mỗi đối tượng có thuộc tính file_url chứa URL của tệp video đã chia tách.
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ệ.
- 401 Unauthorized: Được trả về khi header
x-api-keybị thiếu hoặc không hợp lệ. - 429 Too Many Requests: Được trả về khi đạt đến độ dài hàng đợi tối đa.
- 500 Internal Server Error: Được trả về khi có lỗi không mong muốn xảy ra trong quá trình chia tách video.
Ví dụ phản hồi lỗi:
{
"code": 400,
"id": "unique-request-id",
"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
"message": "Invalid request payload: 'splits' is a required property",
"pid": 12345,
"queue_id": 6789,
"queue_length": 2,
"build_number": "1.0.0"
}
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 với thông báo lỗi mô tả.
- 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ệ. - Vượt quá độ dài hàng đợi: Trả về lỗi 429 Too Many Requests nếu đạt đến độ dài hàng đợi tối đa.
- Ngoại lệ không mong muốn: Trả về lỗi 500 Internal Server Error với thông báo ngoại lệ.
Ngữ cảnh ứng dụng chính (app.py) cũng bao gồm xử lý lỗi cho giới hạn độ dài hàng đợi và thông báo webhook.
6. Ghi chú sử dụng
- Tham số
video_urlphải là URL hợp lệ trỏ đến tệp video. - Mảng
splitsphải chứa ít nhất một đối tượng chỉ định thời gian bắt đầu và kết thúc cho một đoạn chia tách. - Thời gian bắt đầu và kết thúc phải ở định dạng
hh:mm:ss.ms(giờ:phút:giây.mili giây). - Các tham số
video_codec,video_preset,video_crf,audio_codec, vàaudio_bitratelà tùy chọn và có thể được sử dụng để tùy chỉnh cài đặt mã hóa cho các video đã chia tách. - Nếu tham số
webhook_urlđược cung cấp, thông báo webhook sẽ được gửi đến URL đã chỉ định khi thao tác chia tách 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 thời gian bắt đầu và kết thúc trùng lặp hoặc không hợp lệ trong mảng
splits. - Vượt quá độ dài hàng đợi tối đa, điều này có thể dẫn đến lỗi 429 Too Many Requests.
8. Thực hành tốt nhất
- Xác thực tham số
video_urltrước khi gửi yêu cầu để đảm bảo nó trỏ đến tệp video hợp lệ. - Đảm bảo thời gian bắt đầu và kết thúc trong mảng
splitsđược định dạng đúng và không trùng lặp. - Cân nhắc sử dụng tham số
webhook_urlđể nhận thông báo về việc hoàn tất thao tác chia tách, đặc biệt cho các yêu cầu chạy lâu hoặc không đồng bộ. - Triển khai cơ chế thử lại và xử lý lỗi trong ứng dụng máy khách của bạn để xử lý các lỗi và thất bại tiềm ẩn.
- Giám sát độ dài hàng đợi và điều chỉnh biến môi trường
MAX_QUEUE_LENGTHkhi cần để tránh xếp hàng quá mức và timeout tiềm ẩ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 chia tách.
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
}