Tutorial · Node.js
How to scrape TikTok transcripts with Node.js (2026)
A Node.js walkthrough for GET /v1/tiktok/videos/transcript. Copy the snippet, run it, then read the JSON.
GET /v1/tiktok/videos/transcript · 1 credit base, +10 with `useAiFallback`. Up to 11 credits max.
In this tutorial
You'll pull a TikTok transcript from a public video URL and see the text you get back.
Example job: turn a public TikTok video into text for search or alerts.
Step 1
Get ready
You need a Social Fetch API key and a working Node.js environment. New accounts include 100 free credits.
API key. Create a Social Fetch account and copy an API key. New accounts include 100 free credits.
Node.js setup. Node 18+ (native fetch). Export SOCIALFETCH_API_KEY.
When you're done, SOCIALFETCH_API_KEY is set in your shell.
Step 2
Make the request
Copy the Node.js snippet, keep SOCIALFETCH_API_KEY in the environment, and send GET /v1/tiktok/videos/transcript with the x-api-key header. Example path: /v1/tiktok/videos/transcript?url=https%3A%2F%2Fwww.tiktok.com%2F%40mkbhd%2Fvideo%2F7123456789012345678. The sample uses public values for transcripts.
You should see HTTP 200 and a JSON body. Native fetch does not throw on 4xx/5xx, so check response.ok before parsing.
Step 3
Read the response
A JSON body with data (the transcripts) and meta (creditsCharged, requestId). The sample below is illustrative; field-level docs live on the endpoint page. Credits charge on completed lookups, not transport failures.
Branch on data.lookupStatus when present, then keep meta.requestId if a row looks wrong.
Watch out
a completed lookup with lookupStatus not_found means no transcript was available — you still pay the base credit. Photo carousels are not videos. Optional language is a preference when a track exists, not a guarantee the creator uploaded that language.
Step 4
You finished
Same path and credits in playground, docs, and production. Pick a next action below.
FAQ
Common questions
Do I need an official TikTok developer account?
No. Social Fetch authenticates with your Social Fetch API key. You call GET /v1/tiktok/videos/transcript and we handle upstream access. You still need to follow each platform's terms for how you use public data.
What does the tiktok transcripts endpoint return?
A JSON envelope with data (the transcripts) and meta (creditsCharged, requestId). Shape details and field docs live on the endpoint page and in the OpenAPI docs.
When should I set useAiFallback on TikTok transcripts?
Only when you need speech-to-text for clips with no caption track. Base cost is 1 credit; AI fallback adds 10 (11 max on a completed lookup). Do not blanket-enable it on large batches unless every clip must be transcribed.
What URL formats does the TikTok transcript route accept?
Public /@user/video/… links and vm.tiktok.com short links. Photo carousel URLs return transcript_target_not_video. Always check lookupStatus before treating data.transcript as present.
How much does a successful request cost?
1 credit base, +10 with `useAiFallback`. Up to 11 credits max.
Is this okay for production?
Yes. Same production API as the rest of Social Fetch: typed errors, requestId on every response, and credit charges only on completed lookups (not infrastructure failures). New accounts get 100 free credits.
Any Node.js-specific tips for this request?
Yes. Native fetch does not throw on 4xx/5xx — check response.ok (or status) before parsing JSON. Read meta.requestId from the body when you need support on a bad row.
Related