Tài liệu API Chuyển đổi thành văn bản phương tiện¶
Giá cả¶
25 credits cho mỗi yêu cầu
Chi phí cố định bất kể độ dài phương tiện hay kích thước tệp.
Tổng quan¶
Endpoint Chuyển đổi thành văn bản phương tiện là một phần của bộ API Revid, cung cấp khả năng chuyển đổi âm thanh/video thành văn bản và dịch thuật.
Endpoint¶
- URL:
https://api.revidapi.com/paid/media/transcribe - Method:
POST
Yêu cầu¶
Headers¶
x-api-key: Bắt buộc. Khóa xác thực cho quyền truy cập API.Content-Type: Bắt buộc. Phải làapplication/json.
Tham số Body¶
Tham số bắt buộc¶
media_url(string)- Định dạng: URI
- Mô tả: URL của tệp phương tiện cần chuyển đổi thành văn bản
Tham số tùy chọn¶
task(string)- Giá trị cho phép:
"transcribe","translate" - Mặc định:
"transcribe" -
Mô tả: Chỉ định có chuyển đổi thành văn bản hay dịch âm thanh
-
include_text(boolean) - Mặc định:
true -
Mô tả: Bao gồm văn bản chuyển đổi dạng thuần trong phản hồi
-
include_srt(boolean) - Mặc định:
false -
Mô tả: Bao gồm phụ đề định dạng SRT trong phản hồi
-
include_segments(boolean) - Mặc định:
false -
Mô tả: Bao gồm các đoạn có timestamp trong phản hồi
-
word_timestamps(boolean) - Mặc định:
false -
Mô tả: Bao gồm timestamp cho từng từ riêng lẻ
-
response_type(string) - Giá trị cho phép:
"direct","cloud" - Mặc định:
"direct" -
Mô tả: Có trả về kết quả trực tiếp hay dưới dạng URL cloud storage
-
language(string) - Tùy chọn
-
Mô tả: Mã ngôn ngữ nguồn cho việc chuyển đổi thành văn bản
-
webhook_url(string) - Định dạng: URI
-
Mô tả: URL để nhận kết quả chuyển đổi thành văn bản không đồng bộ
-
id(string) -
Mô tả: Mã định danh tùy chỉnh cho công việc chuyển đổi thành văn bản
-
max_words_per_line(integer) - Tối thiểu: 1
- Mô tả: Điều khiển số lượng từ tối đa mỗi dòng trong tệp SRT. Khi được chỉ định, văn bản của mỗi đoạn sẽ được chia thành nhiều dòng với tối đa số lượng từ được chỉ định mỗi dòng.
Ví dụ yêu cầu¶
curl -X POST "https://api.revidapi.com/paid/media/transcribe" \
-H "x-api-key: your_api_key" \
-H "Content-Type: application/json" \
-d '{
"media_url": "https://example.com/media/file.mp3",
"task": "transcribe",
"include_text": true,
"include_srt": true,
"include_segments": true,
"response_type": "cloud",
"webhook_url": "https://your-webhook.com/callback",
"id": "custom-job-123",
"max_words_per_line": 5
}'
Phản hồi¶
Phản hồi ngay lập tức (202 Accepted)¶
Khi cung cấp webhook URL, API trả về xác nhận ngay lập tức:
{
"code": 202,
"id": "custom-job-123",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"message": "processing",
"pid": 12345,
"queue_id": 67890,
"max_queue_length": "unlimited",
"queue_length": 1,
"build_number": "1.0.0"
}
Phản hồi thành công (qua Webhook)¶
Đối với response_type trực tiếp:
{
"endpoint": "/v1/transcribe/media",
"code": 200,
"id": "custom-job-123",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"response": {
"text": "Nội dung văn bản đã chuyển đổi...",
"srt": "Nội dung định dạng SRT...",
"segments": [...],
"text_url": null,
"srt_url": null,
"segments_url": null
},
"message": "success",
"pid": 12345,
"queue_id": 67890,
"run_time": 5.234,
"queue_time": 0.123,
"total_time": 5.357,
"queue_length": 0,
"build_number": "1.0.0"
}
Đối với response_type cloud:
{
"endpoint": "/v1/transcribe/media",
"code": 200,
"id": "custom-job-123",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"response": {
"text": null,
"srt": null,
"segments": null,
"text_url": "https://storage.example.com/text.txt",
"srt_url": "https://storage.example.com/subtitles.srt",
"segments_url": "https://storage.example.com/segments.json"
},
"message": "success",
"pid": 12345,
"queue_id": 67890,
"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¶
Hàng đợi đầy (429 Too Many Requests)¶
{
"code": 429,
"id": "custom-job-123",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"message": "MAX_QUEUE_LENGTH (100) reached",
"pid": 12345,
"queue_id": 67890,
"queue_length": 100,
"build_number": "1.0.0"
}
Lỗi server (500 Internal Server Error)¶
{
"endpoint": "/v1/transcribe/media",
"code": 500,
"id": "custom-job-123",
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"response": null,
"message": "Chi tiết thông báo lỗi",
"pid": 12345,
"queue_id": 67890,
"run_time": 0.123,
"queue_time": 0.056,
"total_time": 0.179,
"queue_length": 1,
"build_number": "1.0.0"
}
Xử lý lỗi¶
Lỗi phổ biến¶
- API Key không hợp lệ: 401 Unauthorized
- Payload JSON không hợp lệ: 400 Bad Request
- Thiếu trường bắt buộc: 400 Bad Request
- media_url không hợp lệ: 400 Bad Request
- Hàng đợi đầy: 429 Too Many Requests
- Lỗi xử lý: 500 Internal Server Error
Lỗi xác thực¶
Endpoint thực hiện xác thực nghiêm ngặt của payload yêu cầu bằng JSON Schema. Các lỗi xác thực phổ biến bao gồm: - Định dạng URI không hợp lệ cho media_url hoặc webhook_url - Giá trị task không hợp lệ (phải là "transcribe" hoặc "translate") - Giá trị response_type không hợp lệ (phải là "direct" hoặc "cloud") - Thuộc tính không xác định trong body yêu cầu
Ghi chú sử dụng¶
- Xử lý Webhook
- Khi cung cấp webhook_url, yêu cầu được xử lý không đồng bộ
- API trả về phản hồi 202 ngay lập tức với job_id
-
Kết quả cuối cùng được gửi đến webhook_url khi xử lý hoàn tất
-
Quản lý hàng đợi
- Các yêu cầu với webhook_url được đưa vào hàng đợi để xử lý
- Biến môi trường MAX_QUEUE_LENGTH điều khiển kích thước hàng đợi
-
Đặt MAX_QUEUE_LENGTH thành 0 để kích thước hàng đợi không giới hạn
-
Quản lý tệp
- Đối với response_type cloud, các tệp tạm thời được tự động dọn dẹp
- Kết quả được tải lên cloud storage trước khi xóa
-
URL trong phản hồi cung cấp quyền truy cập vào các tệp đã lưu trữ
-
Định dạng SRT
- Tham số
max_words_per_linecho phép kiểm soát số lượng từ tối đa mỗi dòng trong tệp SRT - Khi được chỉ định, văn bản của mỗi đoạn sẽ được chia thành nhiều dòng với tối đa số lượng từ được chỉ định mỗi dòng
- Điều này hữu ích để tạo phụ đề dễ đọc hơn với độ dài dòng nhất quán
Vấn đề thường gặp¶
- Truy cập phương tiện
- Đảm bảo media_url có thể truy cập công khai
- Xác minh định dạng tệp phương tiện được hỗ trợ
-
Kiểm tra tệp phương tiện có bị hỏng không
-
Gửi Webhook
- Đảm bảo webhook_url có thể truy cập công khai
- Triển khai logic thử lại endpoint webhook
-
Giám sát khả năng sử dụng endpoint webhook
-
Sử dụng tài nguyên
- Tệp phương tiện lớn có thể mất thời gian xử lý đáng kể
- Giám sát độ dài hàng đợi cho các triển khai production
- Cân nhắc triển khai giới hạn kích thước yêu cầu
Thực hành tốt nhất¶
- Xử lý yêu cầu
- Luôn cung cấp id duy nhất để theo dõi công việc
- Triển khai logic thử lại webhook
-
Lưu trữ job_id để tương quan kết quả
-
Quản lý tài nguyên
- Giám sát độ dài hàng đợi trong production
- Triển khai xử lý timeout phù hợp
-
Sử dụng response_type cloud cho tệp lớn
-
Xử lý lỗi
- Triển khai xử lý lỗi webhook toàn diện
- Ghi nhật ký job_id với tất cả các hoạt động liên quan
-
Giám sát thời gian xử lý và tỷ lệ lỗi
-
Bảo mật
- Sử dụng HTTPS cho media_url và webhook_url
- Triển khai xác thực webhook
- Xác thực loại tệp phương tiện trước khi xử lý
Giá cả¶
25 credits cho mỗi yêu cầu
Chi phí cố định bất kể độ dài phương tiện hay kích thước tệp.
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
}