| name | videosays |
| version | 1.0.3 |
| description | Videosays video transcription, video to text, speech to text, subtitle extractor, caption transcription, YouTube transcript, TikTok transcript, Instagram Reels transcript, X or Twitter video transcript, Douyin transcript, Xiaohongshu transcript, and AI agent video transcription. Use when the user asks to transcribe a video link, extract spoken text, generate subtitles, check credit balance, or view transcription history. |
| license | MIT-0 |
| requires | {"binaries":["npx"]} |
| sendsDataTo | ["https://api.videosays.com"] |
Videosays - Video to Text Transcription
Use npx videosays to turn video links or share text into transcript text. Search terms this skill covers include video to text, video transcription, speech to text, subtitle extraction, caption transcription, Douyin transcription, TikTok transcription, Instagram Reels transcription, X video transcription, Twitter video transcription, YouTube transcription, Xiaohongshu transcription, and short-video transcript.
This skill sends the user's API key and submitted video link/share text to Videosays.
Requirements
First Use
If no API key is configured, run:
npx videosays login
The CLI prints a browser authorization URL and waits. Ask the user to open that URL, sign in to Videosays, and authorize the CLI. The CLI then saves the API key to ~/.videosays.
If the user provides an API key directly, run:
npx videosays login --api-key "$VIDEOSAYS_API_KEY"
Do not print or reveal the API key in responses.
Commands
Use the simplest command that matches the user's requested output. By default the CLI prints only transcript text to stdout, which is the preferred agent workflow.
npx videosays whoami
npx videosays transcribe "https://www.tiktok.com/@creator/video/123456"
npx videosays transcribe "https://v.douyin.com/xxxxx/" --format text
npx videosays transcribe "https://www.tiktok.com/@creator/video/123456" --format timeline
npx videosays transcribe "https://www.tiktok.com/@creator/video/123456" --format srt
npx videosays transcribe "https://www.tiktok.com/@creator/video/123456" --format vtt
npx videosays status "<task-id>"
npx videosays status "<task-id>" --format srt
npx videosays balance
npx videosays history
Authentication Check
Before the first transcription in a session, run:
npx videosays whoami
If it exits successfully, continue with transcription. If it exits non-zero because no API key is configured, run:
npx videosays login
Ask the user to complete the browser authorization URL printed by the CLI, then retry npx videosays whoami. Do not ask the user for their API key unless they explicitly want to provide one.
Pending Tasks
Long videos may still be processing when transcribe returns. If stdout contains this block:
VIDEOSAYS_TASK_PENDING
task_id=<task-id>
status=<status>
next=videosays status <task-id>
Do not treat it as a final transcript. Extract task_id, wait a reasonable interval, then run the next command. If the original user requested a format, preserve it on status checks, for example:
npx videosays status "<task-id>" --format srt
Repeat until the command prints transcript/subtitle content or exits with an error.
Errors
If a command exits non-zero, read stderr. Do not treat stdout as transcript content.
The CLI prints stable error details when available:
Error: <message>
Code: <error-code>
Next: <recommended-command>
Recharge: <billing-url>
If Code: insufficient_credits appears, do not retry transcription. Tell the user their balance is insufficient, suggest npx videosays balance, and provide the recharge URL if present.
For media or link errors such as media_resolve_failed, media_unavailable, or media_inaccessible, tell the user the link could not be processed and ask for another video link.
Data Flow
This skill calls npx videosays, which sends the submitted video link/share text and API key to https://api.videosays.com for transcription. Transcript text or the requested timestamp/subtitle format is returned on stdout.
Links