Skip to content

Any outcomeFor automation, marketers

Get YouTube transcripts in n8n, Make and Zapier

Call the CleanScript API from an HTTP step in n8n, Make or Zapier to get a YouTube, TikTok or Instagram transcript and check a creator for new posts.

2 min readBy CleanScriptMarkdown

On this page
  1. The request
  2. Fields to map
  3. Fields instead of the whole text
  4. Check a creator for new posts
  5. Safe to re-run
  6. Watch your credits

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
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:

JSON
{ "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
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-05

You 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-Key header with a value unique to the post, such as transcript- 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.