Skill / CLI / API / Agent integration docs
Choose Skill, CLI, API, or an agent workflow to extract short-video transcripts.
Authentication
API key setup
All integration methods require an API key. The fastest path is running npx video2txt-cli setup to sign up or log in automatically.
export DY_CAPTION_API_KEY="dy_your_api_key"Skill (recommended)
Connect OpenClaw, Hermes, Codex, Claude, and other agent workflows
Call transcription from natural language without manually opening the dashboard. OpenClaw can install the Skill with clawhub; Hermes, Codex, Claude, and similar environments can connect through CLI or API.
Install command
clawhub install video2txt
Manual install (fallback)
cd ~/.openclaw/workspace git clone https://github.com/xwchris/video2txt.git skills/video2txt
Usage examples
Extract the transcript from this short-video link: https://www.tiktok.com/@creator/video/123456Turn this shared short-video text into English transcript textCheck my Videosays balanceWorkflow
- 1Install the Skill: clawhub install video2txt
- 2Ask your agent to extract short-video text. First use guides sign-up and grants free minutes.
- 3Later, send a short-video link or shared text directly without reconfiguration.
CLI tool
Cross-platform CLI with npx
A standalone command-line tool for local scripts, custom agents, and non-Skill environments. Supports macOS, Linux, and Windows with Node.js >= 18.
First use
# Sign up or log in, then save the API key automatically npx video2txt-cli setup
Usage
# Extract transcript text from a short-video link or shared text npx video2txt-cli transcribe "https://www.tiktok.com/@creator/video/123456" # Specify language npx video2txt-cli transcribe "https://www.tiktok.com/@creator/video/123456" en-US # Query task status npx video2txt-cli status <taskId> # Query balance npx video2txt-cli balance # View history npx video2txt-cli history
REST API endpoints
Call the REST API directly from your own app or workflow. Task creation is asynchronous: submit a link, then poll task status.
POST returns a pending task immediately. Poll GET /api/v1/transcribe/:taskId until the status is completed or failed. Normal status flow: pending -> analyzing -> processing -> completed.
Create transcription task
Create Transcription Task
https://api.videosays.com/api/v1/transcribeRequest body
{
"input": "https://www.tiktok.com/@creator/video/123456",
"language": "en-US" // optional, defaults to auto
}Response example
{
"success": true,
"taskId": "uuid",
"id": "uuid",
"status": "pending",
"input": "https://www.tiktok.com/@creator/video/123456",
"video": {
"platform": null,
"platformVideoId": null,
"inputUrl": "https://www.tiktok.com/@creator/video/123456",
"title": null,
"author": null,
"coverUrl": null,
"durationSeconds": null
},
"billing": { "creditMinutes": 0 },
"result": {
"text": null,
"segments": null,
"sourceType": null,
"provider": null
},
"media": null,
"error": null
}cURL example
curl -X POST https://api.videosays.com/api/v1/transcribe \
-H "X-API-Key: dy_your_api_key" \
-H "Content-Type: application/json" \
-d '{"input": "https://www.tiktok.com/@creator/video/123456", "language": "en-US"}'Get transcription result
Get Transcription Result
https://api.videosays.com/api/v1/transcribe/:taskIdResponse example
{
"taskId": "uuid",
"id": "uuid",
"status": "completed",
"input": "https://www.tiktok.com/@creator/video/123456",
"video": {
"platform": "tiktok",
"platformVideoId": "123456",
"inputUrl": "https://www.tiktok.com/@creator/video/123456",
"title": "Original video description",
"author": "Creator name",
"coverUrl": "https://example.com/cover.jpg",
"durationSeconds": 72
},
"billing": { "creditMinutes": 1.2 },
"result": {
"text": "Welcome back to my channel...",
"segments": null,
"sourceType": "asr",
"provider": "volcengine"
},
"error": null
}Credits and history
Credits And History
https://api.videosays.com/api/v1/creditshttps://api.videosays.com/api/v1/historyCredits response example
{
"balance": 10,
"reservedBalance": 0,
"availableBalance": 10,
"totalPurchased": 0,
"totalUsed": 0
}Supported languages
Supported Languages
Error codes
Error Codes
| Status code | Description |
|---|---|
401 | API key is invalid or missing |
402 | Insufficient balance |
400 | Invalid request parameters |
404 | Task or video not found |
429 | Too many requests |
500 | Server error |
