Integration docs

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"
Get your API key in the dashboard: videosays.com/dashboard

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
GitHub: xwchris/video2txt

Usage examples

-Extract the transcript from this short-video link: https://www.tiktok.com/@creator/video/123456
-Turn this shared short-video text into English transcript text
-Check my Videosays balance

Workflow

  1. 1Install the Skill: clawhub install video2txt
  2. 2Ask your agent to extract short-video text. First use guides sign-up and grants free minutes.
  3. 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
GitHub: xwchris/video2txt ยท npm: video2txt-cli

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

POST
https://api.videosays.com/api/v1/transcribe

Request 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

GET
https://api.videosays.com/api/v1/transcribe/:taskId

Response 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

GEThttps://api.videosays.com/api/v1/credits
GEThttps://api.videosays.com/api/v1/history

Credits response example

{
  "balance": 10,
  "reservedBalance": 0,
  "availableBalance": 10,
  "totalPurchased": 0,
  "totalUsed": 0
}

Supported languages

Supported Languages

zh-CN
en-US
ja-JP
ko-KR

Error codes

Error Codes

Status codeDescription
401API key is invalid or missing
402Insufficient balance
400Invalid request parameters
404Task or video not found
429Too many requests
500Server error
Videosays Skill / CLI / API / Agent Docs | Videosays