TikTok Video Scraper With Engagement Data avatar

TikTok Video Scraper With Engagement Data

Pricing

from $2.99 / 1,000 results

Go to Apify Store
TikTok Video Scraper With Engagement Data

TikTok Video Scraper With Engagement Data

TikTok Video Scraper With Engagement Data extracts from any TikTok video, including captions, creators, hashtags, sounds, metrics, comments count, share count, and timestamps. Ideal for trend tracking, content research, influencer analysis, and automating structured.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

SimpleAPI

SimpleAPI

Maintained by Community

Actor stats

0

Bookmarked

14

Total users

0

Monthly active users

6 days ago

Last modified

Share

Scrape TikTok videos by direct URL and get, in addition to the full video/author/music metadata, a computed engagement-analytics field group on every row -- engagement rate, like/view and comment/view ratios, a virality score, a duration bucket, and a batch-relative engagement percentile rank -- plus optional filters to drop low-performing videos from the output.

What it does

  1. Fetches each submitted TikTok video URL and extracts the video's full public metadata (author, music, stats, hashtags, mentions, media URLs, moderation/content flags).
  2. Optionally follows each video to its related-videos feed (scrapeRelatedVideos).
  3. Computes a set of derived analytics fields for every successfully scraped video.
  4. Optionally drops videos below a minimum engagement rate and/or virality score.
  5. Every row -- including ones that failed to scrape -- is pushed with the exact same set of columns, so a failure shows up as a clearly labeled error row instead of silently disappearing or rendering as a blank/short row.

Input

FieldTypeDefaultNotes
postURLs (required)array of strings1 sample URLDirect TikTok video URLs to scrape.
scrapeRelatedVideosbooleanfalseWhen enabled, also scrapes each video's related-videos feed.
resultsPerPageinteger (1-20)10Related videos to fetch per post, when scrapeRelatedVideos is enabled. TikTok's own related-video surface tops out around 12-16 videos per post, so values above that will not return more rows.
minEngagementRatenumber0 (disabled)Drops videos whose engagementRate is below this value. 0 disables the filter.
minViralityScorenumber0 (disabled)Drops videos whose viralityScore is below this value. 0 disables the filter.

Rows that failed to scrape are never removed by either filter -- filters only apply to rows with real engagement data.

Example input:

{
"postURLs": ["https://www.tiktok.com/@apifyoffice/video/7200360993149553925"],
"scrapeRelatedVideos": false,
"resultsPerPage": 10,
"minEngagementRate": 0,
"minViralityScore": 0
}

Analytics fields (computed, not from TikTok)

  • engagementRate = (likes + shares + comments + saves) / views
  • likeToViewRatio = likes / views
  • commentToViewRatio = comments / views
  • viralityScore = engagementRate / age of the video in days (from createTimeISO to the time the run executed) -- rewards videos that gathered engagement quickly.
  • durationBucket = short (<15s) / medium (15-60s) / long (>60s), from videoMeta.duration.
  • engagementPercentileRank = this video's engagementRate percentile rank (0-100) relative to every other successfully scraped video in the same run.

All analytics fields are null on a row that failed to scrape, or when playCount is 0 (a rate can't be computed against zero views).

Output

Every dataset row shares the same ~70-field shape, whether the video scraped successfully or not. On failure, every metadata field is null/empty and error explains what happened; on success, error is null. Example of a successful row (values illustrative):

{
"id": "7200360993149553925",
"text": "Example caption #example",
"createTimeISO": "2023-05-15T12:00:00.000Z",
"authorMeta": {
"name": "apifyoffice",
"verified": false,
"fans": 1234
},
"diggCount": 5400,
"shareCount": 210,
"playCount": 98000,
"commentCount": 340,
"collectCount": 180,
"mediaUrls": ["https://v16-webapp.tiktok.com/....mp4"],
"mentions": ["@someuser"],
"hashtags": [{ "name": "example" }],
"isAigc": false,
"diversificationLabels": ["Comedy"],
"duetEnabled": true,
"stitchEnabled": true,
"shareEnabled": true,
"engagementRate": 0.0625,
"likeToViewRatio": 0.0551,
"commentToViewRatio": 0.0035,
"viralityScore": 0.00021,
"durationBucket": "medium (15-60s)",
"engagementPercentileRank": 87.5,
"webVideoUrl": "https://www.tiktok.com/@apifyoffice/video/7200360993149553925",
"error": null
}

mediaUrls contains direct CDN video URLs already returned by TikTok's own page data -- this actor never downloads or stores video files.

Notes

  • Uses TikTok's public video-page metadata; no login, cookies, or private-account access.
  • No proxy configuration is included in this actor.
  • commentsDatasetUrl and authorMeta.followDatasetUrl are always null -- this actor does not fetch comments or follower lists.