TikTok On-Screen Text Extractor - Overlays, Hooks, Slides avatar

TikTok On-Screen Text Extractor - Overlays, Hooks, Slides

Pricing

$40.00 / 1,000 post analyzeds

Go to Apify Store
TikTok On-Screen Text Extractor - Overlays, Hooks, Slides

TikTok On-Screen Text Extractor - Overlays, Hooks, Slides

Extract the text shown on screen in TikTok videos and slideshows: hooks, recipe steps, lists and tips, with timestamps, kept apart from spoken subtitles.

Pricing

$40.00 / 1,000 post analyzeds

Rating

0.0

(0)

Developer

Seemu Scraping

Seemu Scraping

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Extract the text shown on screen in TikTok videos and photo slideshows: hook lines, recipe steps, ingredient amounts, "3 tips" lists, quotes and text cards. Every piece of text comes back with the second it appears, so you get the words a transcript or caption scraper never sees.

What you get

  • hookText: the text on screen when the video opens (the hook)
  • fullText: all on-screen overlay text, de-duplicated, in the order it appears
  • captionText: burned-in subtitles that only repeat what is spoken, kept apart so they don't clutter the overlay text
  • textSegments: every text block with startSec, endSec (or slide number for slideshows), type (overlay or caption) and matchesSpeech
  • Post details: video URL, creator username and display name, post caption, upload date, duration, views and likes
  • framesAnalyzed and analyzedSeconds, so you can see how much of each video was read
  • Optional frameImages: links to every frame that was read, so you can check the text against the picture
  • Works for videos and photo slideshows, from single links or whole profiles

Export to JSON, CSV, Excel or Google Sheets from the Dataset tab.

Use cases

  • Recipe and how-to extraction: pull ingredient lists, amounts and steps that creators only show as text
  • Hook research: collect the opening text lines of top-performing videos in your niche
  • Content repurposing: turn "5 tips" and listicle videos into blog posts, newsletters or carousels
  • Competitor analysis: see which on-screen messages, offers and calls to action competitors use
  • Searchable video archives: index on-screen text for search, tagging or classification

How to use

  1. Paste TikTok video or slideshow links into TikTok video or slideshow links (or video IDs), and/or add usernames under TikTok profiles
  2. For profiles, set Max posts per profile (default 10, newest first)
  3. Optionally change Seconds between frames (default 1) and Max frames per video (default 30, maximum 30)
  4. Turn on Include frame images if you want to see the frames that were read
  5. Run the actor. Results appear in the Dataset tab, one row per post

How it works

The video is sampled about once per second. Frames that look the same as the one before are skipped, and the remaining frames (up to your limit, spread evenly over the video) are read for text. Text that stays on screen across several frames is merged into one segment with a start and end time.

  • Overlay vs. subtitle: text that repeats the spoken words (burned-in subtitles, word-by-word captions) is marked caption and listed in captionText. When the video has TikTok speech captions, each block is also compared with what is said, and matchesSpeech is true when the text is a word-for-word stretch of the speech. A title the speaker also reads out stays an overlay when it is on screen for more than a few seconds.
  • Ignored: the TikTok watermark and @username, text that is part of the filmed scene (product packaging, signs, clothing), and lone emoji.
  • Slideshows: every photo is read (up to the frame limit) and segments carry a slide number instead of times.
  • Long videos: the first 2 minutes are read. analyzedSeconds shows how much was covered.

Output format

{
"status": "ok",
"postType": "video",
"url": "https://www.tiktok.com/@foodclub.by.irna/video/7678449607751273760",
"author": "foodclub.by.irna",
"authorName": "FoodClub by Irna",
"description": "Easy 3-Ingredient Nutella Brownie 😋 ...",
"createdAt": "2026-08-26T21:06:08.000Z",
"durationSeconds": 9,
"views": 7000000,
"likes": 215800,
"hookText": "3-ingredient Nutella brownie",
"fullText": "3-ingredient Nutella brownie\n2 tbsp Nutella\nChocolate chips - optional ❤️",
"captionText": null,
"textSegments": [
{ "startSec": 0, "endSec": 3, "slide": null, "text": "3-ingredient Nutella brownie", "type": "overlay", "matchesSpeech": false },
{ "startSec": 3, "endSec": 5, "slide": null, "text": "2 tbsp Nutella", "type": "overlay", "matchesSpeech": false },
{ "startSec": 7, "endSec": 8, "slide": null, "text": "Chocolate chips - optional ❤️", "type": "overlay", "matchesSpeech": false }
],
"framesAnalyzed": 9,
"analyzedSeconds": 9,
"frameImages": null
}

status is one of:

statusmeaningcharged
oktext was foundyes
no_textthe post was read but shows no on-screen textyes
not_founddeleted, private, region-locked or wrong linkno
invalid_inputnot a TikTok link, video ID or usernameno
errorthe post could not be read right now; try againno
not_processedfree-plan limit or run timeout reachedno

Pricing

One flat price per post read, video or slideshow: $0.04 per post ($40 per 1,000), charged as the video-text event. There are no extra charges for longer videos, more frames or slideshow photos.

Posts that return not_found, invalid_input, error or not_processed are free. A post with no on-screen text (no_text) is still charged, because it was downloaded and read in full.

Tips and limits

  • Text that flashes on screen for less than the frame spacing can be missed. Lower Seconds between frames to 0.5 for fast-cut videos.
  • Videos longer than 30 seconds at 1 frame per second exceed 30 frames, so frames are spread out evenly. Only the first 2 minutes of longer videos are read. Very fast word-by-word captions in long videos are only partly captured.
  • Small print (fine print, dense worksheets shown for a second) may be read incompletely.
  • Free Apify plans can read 5 posts per run, 3 runs per day.