On this page
Any automation tool with an HTTP step can get a transcript. You don't need a plugin: one request, two or three mapped fields, and the rest of your workflow has clean text.
The request #
| Setting | Value |
|---|---|
| Method | POST |
| URL | https://api.cleanscript.ai/v1/transcript |
| Header | Authorization = Bearer followed by your key |
| Body (JSON) | {"url": "<the post link from your trigger>"} |
| Timeout | 2 minutes or more |
Create the key on the API keys page and store it as a credential, not in the step.
- n8n: HTTP Request node, Header Auth credential, Send Body as JSON. The timeout is under Options.
- Make: HTTP, Make a request, with Parse response on.
- Zapier: Webhooks by Zapier, Custom Request.
Short posts answer in seconds. A long video can take up to 2 minutes, which is why the timeout matters.
To test the request first:
curl https://api.cleanscript.ai/v1/transcript \
-H "Authorization: Bearer $CLEANSCRIPT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://youtu.be/jwnez8HdN7E"}'Fields to map #
| Field | What it is |
|---|---|
text |
The full transcript |
post.title |
The video title (YouTube only; TikTok and Instagram use post.description) |
post.author.name |
The channel or account |
post.url |
The link to the post |
sections[0].url |
A link to the first section |
Pass text to the next step: an AI step that summarises it, a row in a sheet, a page in your notes.
Fields instead of the whole text #
For just the parts you need, such as a summary or the brands mentioned, change the URL to https://api.cleanscript.ai/v1/extract and add a preset, a prompt or your own schema to the body:
{ "url": "https://youtu.be/jwnez8HdN7E", "preset": "mentions" }Map data for the values; citations has the quote behind each. See extract fields from a video.
Check a creator for new posts #
GET /v1/posts lists a creator's recent posts, newest first. Run it on a schedule with since set to the date of your last run, and send each new post's url to the transcript step:
curl -G https://api.cleanscript.ai/v1/posts \
-H "Authorization: Bearer $CLEANSCRIPT_API_KEY" \
--data-urlencode "author=https://www.youtube.com/@Fireship" \
-d since=2026-10-05You get {"author": …, "posts": […]}, each post the same object as everywhere else. A listing costs 1 credit and works for YouTube channels and TikTok and Instagram profiles (on YouTube, videos only, not Shorts).
since is a date, so a post from the day of your last run comes back again. Keep the ids you've processed and skip them. See Creator posts.
Safe to re-run #
Automations retry. Two things keep that cheap:
- The same request again within 6 hours is free, and a failed request is never charged.
- An
Idempotency-Keyheader with a value unique to the post, such astranscript-plus the post ID, makes a retry return the first result.
On 429 (too many requests) or 503 (try again), wait the seconds in the Retry-After header and retry. For the other errors, see what to do when a request fails.
Watch your credits #
Every response has an X-Credits-Remaining header. GET /v1/account returns your balance for free, which makes a good first step in a scheduled flow: stop early when it's low.
Spot something wrong? Tell us.