TikTok Content & Creator Analyzer avatar

TikTok Content & Creator Analyzer

Pricing

Pay per usage

Go to Apify Store
TikTok Content & Creator Analyzer

TikTok Content & Creator Analyzer

Extract video metadata, creator profiles, hashtag trends, engagement metrics, and comments from TikTok. Market research tool for brands and content agencies.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Richard P

Richard P

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

6 days ago

Last modified

Share

An Apify Actor for extracting TikTok creator profiles, video metadata, engagement metrics, and hashtag content from public TikTok pages.


Features

  • Profile scraping — extract creator bio, follower/following counts, avatar, verification status, and recent videos from any public TikTok profile (tiktok.com/@username).
  • Hashtag exploration — scrape videos from hashtag pages (tiktok.com/tag/hashtag).
  • Engagement metrics — likes, comments, shares, and play counts per video.
  • oEmbed enrichment — augments each video with metadata from TikTok's official oEmbed API (title, thumbnail dimensions, embed HTML).
  • Graceful abort — responds to Apify platform abort signals to shut down cleanly mid-crawl.
  • Rate-limited — 3 s delay between requests to avoid aggressive rate-limiting from TikTok.

Input

FieldTypeDefaultDescription
profileUrlsarray[]TikTok profile URLs to scrape (e.g. ["https://www.tiktok.com/@nba"])
hashtagsarray[]Hashtags to explore (e.g. ["fyp", "viral"])
maxVideosinteger30Maximum videos to extract per profile or hashtag (1–200)
includeCommentsbooleanfalse(Experimental) fetch video comments — requires an authenticated session

At least one of profileUrls or hashtags must be provided.


Output

Each run pushes items to the Apify dataset. Two main record types:

type: "profile"

One record per creator profile with overall stats:

username, displayName, bio, avatarUrl, verified,
followerCount, followingCount, heartCount, videosExtracted

type: "video" / type: "hashtag_video"

One record per video with engagement data:

videoId, videoUrl, description, likes, commentCount, shares, plays,
thumbnailUrl, mediaUrl, timestamp, hashtags[], music,
oembed { ... }

How it works

TikTok is a JavaScript-heavy single-page application. This actor extracts data from the server-rendered HTML without a browser:

  1. Fetches the page with a mobile User-Agent (httpx.AsyncClient).
  2. Parses embedded JSON state from <script> tags:
    • SIGI_STATE — most comprehensive (user info + video items)
    • __NEXT_DATA__ — Next.js page props
    • __INITIAL_STATE__ — legacy state
  3. Falls back to Open Graph meta tags (og:title, og:description, og:image) when no embedded JSON is found.
  4. Enriches each video with oEmbed API data (https://www.tiktok.com/oembed?url=...).

Limitations & known issues

LimitationExplanation
Aggressive blockingTikTok actively blocks automated requests. If you see HTTP 403 / 429 responses, the actor retries up to 3 times with back-off, but some profiles may still fail.
No login supportThe actor does not authenticate. Private accounts, rate-limited sessions, or data that requires a logged-in user will not be accessible.
Dynamic video listsProfile video lists are loaded via XHR after the initial page render. The static HTML may only contain 1–2 "featured" videos, not the full profile history.
Fragile JSON parsingTikTok changes its frontend frequently — the SIGI_STATE / __NEXT_DATA__ format can break without notice.
oEmbed rate limitsTikTok's oEmbed endpoint may throttle at high request rates. The 3 s delay is a conservative baseline.
Comments not implementedincludeComments: true is a placeholder — fetching comments requires reverse-engineering an authenticated API path.

Recommendation: For production use, consider combining this actor with a session cookie (via Apify's ProxyConfiguration and a browser) or using TikTok's official Research API.


Local development

# Install dependencies
pip install -r requirements.txt
# Run locally with Apify CLI
apify run --purge

Requires Python 3.13+ and the Apify CLI.


License

MIT