Social Video Transcript Scraper — TikTok & Instagram · AI avatar

Social Video Transcript Scraper — TikTok & Instagram · AI

Pricing

from $6.00 / 1,000 caption transcripts

Go to Apify Store
Social Video Transcript Scraper — TikTok & Instagram · AI

Social Video Transcript Scraper — TikTok & Instagram · AI

Transcribe TikTok & Instagram videos to text. Paste video links (Reels, posts, TikTok videos) for instant transcripts, or bulk-transcribe whole TikTok profiles. Caption-first (free, instant) + AI Whisper for no-caption clips. Metadata + engagement + full text. No login.

Pricing

from $6.00 / 1,000 caption transcripts

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

24

Total users

22

Monthly active users

28 minutes ago

Last modified

Share

Social Video Transcript Scraper — TikTok & Instagram (Captions + AI)

How it works

Turn TikTok and Instagram videos into text — two ways. Paste direct video links (TikTok videos, Instagram Reels / video posts / IGTV) and each becomes one transcript row, or give TikTok profile URLs to bulk-transcribe every video a creator has posted. Caption-first where captions exist (free, instant, accurate); on-device AI speech-to-text (Whisper) where they don't. One clean row per video: full metadata + transcript. JSON or CSV.

No API keys, no login, no manual cookies. TikTok captions come straight from TikTok's own data, so most talking videos transcribe for a fraction of a cent. Instagram ships no public captions, so IG links are transcribed with AI Whisper automatically.

Why Use This Scraper?

  • Whole profile in one run — point it at a creator, get transcripts for all their videos. Not one-video-at-a-time.
  • Caption-first = cheap + accurate — uses TikTok's own caption track (its native speech-to-text) when present, so you pay ~$0.006/video, not AI-compute prices.
  • AI fallback when you need it — flip on whisperFallback to transcribe videos that have no caption (music clips, non-English audio) with on-device Whisper. Most competitors can only read captions.
  • Block-resistant discovery — videos are found via a real stealth browser that intercepts TikTok's own item_list requests, so there's no fragile signature/token juggling and no captcha walls.
  • You only pay for transcripts you get — videos with no caption (when AI is off) come back as metadata-only and are not charged.

Overview

Each input profile is expanded into one dataset row per video. A row always carries the video's metadata (id, author, description, duration, engagement stats, URL) and a transcriptSource telling you how it was transcribed:

  • caption — TikTok's own caption track was used (free path, the default).
  • whisper — no caption existed and you enabled AI fallback, so Whisper transcribed the audio.
  • none — no caption and AI fallback was off; the row is metadata-only (and not billed).

Direct video links (videoUrls) work the same way — each link becomes one row with the same transcriptSource semantics. Instagram links always use the AI (whisper) path because Instagram exposes no caption track to the public. This is not a comments/followers scraper — it is built to turn spoken video content into searchable text.

Supported Inputs

InputFieldWhat you get
https://www.tiktok.com/@user/video/7301…videoUrlsThat one TikTok video, transcribed (caption-first, AI fallback)
https://www.instagram.com/reel/Dabg9j1xNHM/videoUrlsThat Instagram Reel, transcribed with AI Whisper
https://www.instagram.com/p/… / /tv/…videoUrlsInstagram video posts and IGTV, same pipeline
https://www.tiktok.com/@gordonramsayofficialstartUrlsEvery discoverable video on that profile, each transcribed
Multiple URLs of either kindeitherAll of them, processed in turn

Not supported: hashtag/sound/search pages, comments, followers, live streams, or Instagram profile crawling (paste specific IG video links instead). Image-only IG posts are skipped free — there is no audio to transcribe.

Use Cases

AudienceWhat they pull
Content & trend researchersSearchable text of a creator's whole catalog — find topics, hooks, recurring phrases
Marketers & agenciesTranscribe competitor creators to mine messaging, CTAs, and product mentions
Lead generationSurface spoken contact info / offers across a profile's videos
Accessibility & repurposingCaptions/transcripts for re-subtitling, blogs, newsletters, show notes
AI / dataset buildersBulk speech-to-text corpora keyed to engagement stats
  1. Discover — each profile is opened in a stealth browser (Playwright + stealth). TikTok's own page fires its item_list requests with a valid in-browser token; the actor intercepts those while scrolling. No signing, no captcha. Retries with a fresh residential exit IP if a load comes back empty.
  2. Caption-first — for each video the actor reads TikTok's inline caption track (claInfo.captionInfos) and fetches the WebVTT inside the same browser session — free, instant, accurate.
  3. AI fallback (optional) — if a video has no caption and whisperFallback is on, the audio is pulled with yt-dlp and transcribed on-device with OpenAI Whisper. Off by default.
  4. Emit & bill — one row per video; you're charged only for videos that actually produced a transcript.

Input Configuration

Provide videoUrls (direct links), startUrls (TikTok profiles), or both.

FieldTypeNotes
videoUrlsarrayDirect video links — TikTok videos and/or Instagram Reels / video posts / IGTV. One transcript row per link.
startUrlsarrayTikTok profile URLs — bulk mode, every discoverable video on the profile
maxItemsintegerMax videos to process (per profile in bulk mode; total in direct mode; default 10)
transcribebooleanAdd transcripts (default true). false = metadata only
whisperFallbackbooleanTranscribe no-caption TikTok videos with AI Whisper (default false). Instagram links always use Whisper — IG has no public captions
whisperModelstringtiny (default) / base / small
languagestringDirect mode: spoken-language ISO code, or auto (default) to detect per video
maxDurationSecintegerSkip no-caption videos longer than this for Whisper (default 120; 0 = no cap)
proxyobjectProxy for the stealth browser; residential strongly recommended
{
"videoUrls": [
{ "url": "https://www.tiktok.com/@bogus_tat2/video/7362361102816054571" },
{ "url": "https://www.instagram.com/reel/Dabg9j1xNHM/" }
],
"language": "auto",
"maxItems": 25
}

Example input — whole TikTok profile (bulk)

{
"startUrls": [
{ "url": "https://www.tiktok.com/@gordonramsayofficial" }
],
"maxItems": 25,
"transcribe": true,
"whisperFallback": false
}

Output Overview

One row per video. The transcript object holds the text plus its source and detected language; transcriptSource and captionAvailable let you filter quickly (e.g. keep only caption rows, or find which videos lack captions).

Output Samples

transcriptSource: "caption" (the default, free path)

{
"id": "7341108653442829601",
"author": "gordonramsayofficial",
"createTime": 1709235062,
"desc": "Its curry in a hurry from #NextLevelKitchen !",
"durationSec": 87,
"stats": {
"playCount": 27300000,
"diggCount": 1900000,
"commentCount": 14900,
"shareCount": 102500,
"collectCount": 477800
},
"videoUrl": "https://www.tiktok.com/@gordonramsayofficial/video/7341108653442829601",
"transcriptSource": "caption",
"captionAvailable": true,
"transcript": {
"source": "caption",
"language": "en",
"text": "For my favourite dishes, butter chicken. Let's go get that chicken. Touch of salt, some pepper, fresh turmeric, cumin as well, ground coriander, cayenne…"
}
}

transcriptSource: "none" (no caption, AI fallback off — metadata only, not charged)

{
"id": "7229884545150061851",
"author": "gordonramsayofficial",
"durationSec": 88,
"videoUrl": "https://www.tiktok.com/@gordonramsayofficial/video/7229884545150061851",
"transcriptSource": "none",
"captionAvailable": false
}

Key Output Fields

Identity & link

  • id — video id
  • author — profile handle
  • videoUrl — canonical link
  • createTime — Unix seconds

Content

  • desc — caption/description text
  • durationSec — length in seconds

Engagement (stats)

  • playCount, diggCount (likes), commentCount, shareCount, collectCount

Transcript

  • transcriptSourcecaption | whisper | none
  • captionAvailable — was a TikTok caption used
  • transcript.text — the transcript
  • transcript.sourcecaption | whisper
  • transcript.language — detected language (e.g. en)

FAQ

Is this AI transcription or TikTok's captions? Both — caption-first. It uses TikTok's own caption track (its native speech-to-text) whenever a video has one, which is the default and the cheap path. Real AI (Whisper) only runs if you turn on whisperFallback for videos that have no caption.

Why are some videos returned with no transcript? Music clips, no-speech skits, and some ads have no TikTok caption. With AI fallback off (the default) those come back as transcriptSource: "none" — metadata only, and you are not charged for them.

How good are the transcripts? TikTok's captions are accurate on clear speech and even capture short non-English phrases. The optional Whisper fallback handles audio TikTok never captioned.

Does it need cookies or a login? No. Discovery runs in a stealth browser against public profile pages.

Why a residential proxy? TikTok rate-limits datacenter IPs. Paying runs are routed through a residential exit automatically; free runs can configure Apify Proxy.

How many videos can it do? It's built for bulk whole-profile runs. Caption extraction is fast; the AI Whisper fallback is CPU-heavy, so keep maxItems modest when whisperFallback is on.

Can I get only captioned videos? Yes — leave whisperFallback off and filter rows where transcriptSource === "caption".

Support

Found a bug or need a field added? Open an issue on the actor's Issues tab, or email muhamed.didovic@gmail.com. Include the input you ran and a run ID.

Additional Services

Need a custom TikTok or social pipeline — comments, followers, sound/hashtag feeds, scheduled monitoring, or delivery straight to a database/sheet? I build bespoke scrapers and enrichment flows. Reach out via the email above.

Explore More Scrapers

  • TikTok Search Suggestions — autocomplete/keyword expansion with popularity scoring
  • Instagram, YouTube & social profile scrapers — metadata + media at scale
  • Tours & Activities (GetYourGuide / Viator / Klook / Tiqets) — listings + reviews
  • Google Play / App Store — app metadata, reviews, ASO
  • Browse all actors on the memo23 Apify Store profile

⚠️ Disclaimer

This Actor accesses publicly available data on TikTok for legitimate research, market-intelligence, accessibility, and business-analysis purposes. Use of this Actor must comply with TikTok's Terms of Service and all applicable laws including data-protection regulations (GDPR, CCPA, etc.). The Actor's authors are not responsible for any misuse. Users must:

  • Respect rate limits and avoid overloading TikTok's infrastructure
  • Not use scraped data to violate user privacy or TikTok's terms
  • Use the data in compliance with applicable jurisdictions
  • Not republish scraped content in violation of copyright

TikTok is a trademark of ByteDance Ltd.; this Actor is not affiliated with, endorsed by, or sponsored by TikTok or ByteDance. We do not store any scraped data; the Actor returns it directly to your Apify dataset for your authorized use.

SEO Keywords

tiktok scraper, tiktok transcript scraper, tiktok video transcription, tiktok captions scraper, tiktok subtitles export, tiktok speech to text, tiktok profile scraper, bulk tiktok transcripts, tiktok whisper transcription, tiktok video to text, tiktok content research, tiktok api alternative, tiktok data extraction, tiktok json export, tiktok csv export, social media transcription, video transcription api, creator content analysis, tiktok bulk export, no-code tiktok scraper