It works when the captions don't exist, in any language, with a timestamp on every phrase.
Most short-form video ships without a caption track. We run speech-to-text on the audio itself, so you get a clean transcript either way — language auto-detected, a timestamp on every phrase.
You don't specify the language, and can't — we detect it from the speech and transcribe it as spoken.
One POST to submit, one GET to poll — clean JSON, nothing to install. Copy-paste examples in cURL, Python, Node and PHP.
Point us at a TikTok profile and expand it into per-video results.
Async by design — submit a URL, then poll for the result (or just wait).
/v1/jobs
submit a URL
curl -X POST https://painted-labs.com/v1/jobs \ -H "Authorization: Bearer sk_..." \ -d '{"url": "https://www.tiktok.com/@user/video/72..."}' # → {"id": "job_abc123...", "status": "IN_QUEUE"}
/v1/jobs/:id
poll until done
curl https://painted-labs.com/v1/jobs/job_abc123... \ -H "Authorization: Bearer sk_..." # → {"status": "COMPLETED", "output": {"text": "...", "language": "en", # "segments": [{"start": 0.0, "end": 3.2, "text": "..."}], ...}}
Prepaid credits — top up once, we deduct per use. No subscription, and credits never expire.
| What | Price | Notes |
|---|---|---|
| Video metadata | Free | title, description, duration, views, likes, comments, uploader, post date |
| Profile / channel / search expansion | Free | pulls the newest videos of a whole profile — each one is a metadata pull, same rate as submitting the URL yourself |
| Transcriptionadd-on | real speech recognition, off by default — a 45s TikTok costs half a cent | |
| Translationadd-on | $10 / 1,000 videos | translates each transcript — flat per video, not per minute; requires transcription |
| Free tier | $0 | 1 transcription + 25 metadata videos each month |