主题切换
ASR_TEXT API Documentation
🌐 Language Switch
Interface Information
POST /openapi/autosubrt/v1/asr/textThis is the speech recognition service
The base URL of this interface is https://autosubrt.jcaigc.cn, which is a different service (and a different path prefix) from CapCut Mate (https://capcut-mate.jcaigc.cn).
Full URL = https://autosubrt.jcaigc.cn + /openapi/autosubrt/v1/asr/textFunction Description
Speech recognition: transcribe audio into punctuated plain text and return it directly, with no timeline at all. Use it when you only need the copy, since the response body is minimal.
For sentences plus per-character timelines use ASR; for an SRT subtitle file use ASR SRT.
Punctuation is restored by a dedicated punctuation model (Whisper is unreliable on Chinese punctuation), so text always carries punctuation.
Request Parameters
json
{
"audio_url": "https://example.com/audio.mp3",
"apiKey": "123e4567-e89b-12d3-a456-426614174000"
}Parameter Description
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| audio_url | string | ✅ | - | Audio file URL, must be downloadable by the server |
| apiKey | string | Required when billing is on | - | A valid UUID; get one at https://jcaigc.cn |
Parameter Details
audio_url
- Type: string
- Description: The server downloads this URL before transcribing, so it must be a direct, publicly reachable link (not a page that requires login)
- Format: Any common audio or video file: wav, mp3, m4a, aac, flac, ogg; video files such as mp4 and mov also work (the audio track is extracted server-side)
- Limit: 100MB per file (server-side
FILE_SIZE_LIMIT, 104857600 bytes by default)
apiKey
- Type: string
- Description: Must be a valid UUID; required while billing is enabled (it is by default), and the account balance must be greater than 1
Response Format
Success Response (200)
json
{
"code": 0,
"message": "Success",
"data": {
"text": "你们应该都听过啊,羊毛羊绒当中的软黄金。"
}
}Response Field Description
| Field | Type | Description |
|---|---|---|
| code | int | 0 means success; see the error codes below otherwise |
| message | string | Human-readable message, Chinese by default, English when Accept-Language: en is sent |
| data.text | string | The full transcript, always punctuated; an empty string when no speech was recognized |
Error Response
json
{
"code": 2003,
"message": "Download file failed"
}Error bodies contain no data field; every error is returned with HTTP 200, so check code instead of the status code.
Usage Examples
cURL Examples
bash
curl -X POST https://autosubrt.jcaigc.cn/openapi/autosubrt/v1/asr/text \
-H "Content-Type: application/json" \
-d '{
"audio_url": "https://example.com/audio.mp3",
"apiKey": "123e4567-e89b-12d3-a456-426614174000"
}'Python Example
python
import requests
resp = requests.post(
"https://autosubrt.jcaigc.cn/openapi/autosubrt/v1/asr/text",
json={
"audio_url": "https://example.com/audio.mp3",
"apiKey": "123e4567-e89b-12d3-a456-426614174000",
},
timeout=600,
)
result = resp.json()
if result["code"] != 0:
raise RuntimeError(result["message"])
print(result["data"]["text"])Billing
This interface is charged by audio duration and shares the same points system as CapCut Mate.
| Item | Description |
|---|---|
| Price | 0.00022 points / second |
| Basis | Actual audio duration in seconds, as reported by the recognition engine |
| When charged | Only after a successful recognition; failures are not charged |
| Balance gate | The account must hold more than 1 point before the call, otherwise it is rejected (2035) |
| Audio duration | Cost (points) |
|---|---|
| 10 seconds | 0.002200 |
| 60 seconds | 0.013200 |
| 1 hour | 0.792000 |
apiKey must be a valid UUID and can be obtained at https://jcaigc.cn.
Error Code Description
| Error Code | Error Message | Description | Solution |
|---|---|---|---|
| 1001 | Parameter validation failed | apiKey is not a valid UUID | Check the request parameters |
| 2001 | Failed to recognize audio | Audio could not be decoded, model not loaded, or audio_url returned 401/403/404 | Try a playable file or a reachable direct link |
| 2002 | File size exceeds the limit | Audio is larger than 100MB | Compress or trim it and retry |
| 2003 | Download file failed | Network or server error during download, still failing after retries | Make sure it is a public direct download link |
| 2005 | Download file timeout | Overall download timed out | Use a faster source or a smaller file |
| 2035 | Insufficient account balance | The account needs more than 1 point to keep using the service | Recharge and retry |
| 2036 | Invalid apiKey | apiKey missing while billing is enabled | Get an apiKey at https://jcaigc.cn |
| 9997 | Server is busy | Concurrency limit reached; the request was not queued | Retry later |
| 9998 | Internal server error | Unexpected internal error | Contact technical support |
| 9999 | Unknown error | Points service unavailable, etc. | Retry later |
Notes
audio_urlis not URL-validated: passing an empty or non-URL string does not return 1001, it fails during download with 2003.- Text only: the response carries no timing information. Use ASR when you need sentences and per-character timelines.
- When no speech is recognized the call succeeds and
data.textis an empty string. - Repeated calls are charged repeatedly; do not blindly retry after a timeout.
Workflow
- Validate apiKey and account balance (while billing is enabled)
- Download the audio/video behind
audio_urlinto a server-side temp directory - Run speech recognition and restore punctuation with the punctuation model
- Charge by audio duration after a successful recognition
- Return the plain text, then delete the temp file
Related Interfaces
📚 Project Resources
GitHub: https://github.com/Hommy-master/autosubrt
