TikTok Scraper — Profiles, Videos & Hashtags avatar

TikTok Scraper — Profiles, Videos & Hashtags

Pricing

Pay per usage

Go to Apify Store
TikTok Scraper — Profiles, Videos & Hashtags

TikTok Scraper — Profiles, Videos & Hashtags

Scrape TikTok profiles and videos from public pages. Extract usernames, follower counts, bio, video descriptions, play counts, likes, comments, shares, music info, and thumbnails. Supports hashtag discovery for trending content. No login required — all public data.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

4 hours ago

Last modified

Categories

Share

TikTok Scraper -- Profiles, Videos & Hashtags

Scrape public TikTok data without login or API keys. Extract profile statistics, video metadata, engagement metrics, music info, and hashtag analytics from any public TikTok page.

Features

  • Profile scraping -- follower count, following count, total likes, video count, bio, avatar, verification status
  • Video metadata -- description, play count, likes, comments, shares, bookmarks, duration, creation time
  • Music info -- song title, artist, album, music URL for each video
  • Hashtag discovery -- view counts, video counts, and trending videos for any hashtag
  • Comment extraction -- optionally capture top-level comments embedded in page data
  • Hashtag & mention parsing -- extracts all #hashtags and @mentions from video descriptions
  • Multiple data sources -- parses __UNIVERSAL_DATA_FOR_REHYDRATION__, SIGI_STATE, __NEXT_DATA__, and HTML meta fallback
  • Anti-detection -- rotates 8 User-Agent strings, realistic browser headers, conservative rate limiting
  • CAPTCHA handling -- detects TikTok's bot verification and stops gracefully with clear instructions
  • Proxy support -- residential proxy configuration for reliable large-scale scraping
  • Pay-per-event -- charged per profile/video scraped

Use Cases

Influencer Analytics

Track follower growth, engagement rates, and posting frequency for influencers and brand accounts. Compare metrics across competitors.

Hashtag Research

Discover trending hashtags, measure their reach (view counts), and find the most engaging content for any topic.

Content Strategy

Analyze what types of videos perform best (by likes, shares, plays) to inform your own content creation strategy.

Market Research

Monitor product mentions, brand sentiment, and industry trends through TikTok's public video data.

Competitive Intelligence

Track competitor accounts, their posting frequency, engagement metrics, and content themes over time.

Academic Research

Collect structured social media data for studies on content virality, platform dynamics, and digital culture.

Input

FieldTypeDefaultDescription
profilesString[][]TikTok usernames to scrape (without @). Example: ["charlidamelio", "khaby.lame"]
hashtagsString[][]Hashtags to scrape (without #). Example: ["fyp", "cooking"]
maxVideosInteger20Max videos per profile/hashtag. Set to 0 for all available.
includeCommentsBooleanfalseExtract top-level comments (only pre-rendered ones)
maxConcurrencyInteger2Parallel requests. Keep low (1-3) for TikTok.
proxyConfigurationObject(none)Apify proxy settings. Residential proxies strongly recommended.

Input Examples

Scrape top TikTok creators

{
"profiles": ["charlidamelio", "khaby.lame", "bellapoarch", "addisonre"],
"maxVideos": 30,
"includeComments": false
}
{
"hashtags": ["fyp", "cooking", "fitness", "smallbusiness"],
"maxVideos": 50
}

Full profile analysis with comments

{
"profiles": ["tiktok", "netflix"],
"maxVideos": 0,
"includeComments": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Mixed profiles and hashtags

{
"profiles": ["garyvee", "hubspot"],
"hashtags": ["marketing", "entrepreneur"],
"maxVideos": 20,
"maxConcurrency": 1
}

Output

The actor produces two types of records in the dataset: profiles and videos.

Profile Output

{
"type": "profile",
"username": "charlidamelio",
"displayName": "Charli D'Amelio",
"userId": "5831967",
"followerCount": 155200000,
"followingCount": 1423,
"likeCount": 11800000000,
"videoCount": 2456,
"bio": "don't you dare",
"avatar": "https://p16-sign-va.tiktokcdn.com/...",
"verified": true,
"privateAccount": false,
"region": "US",
"language": "en",
"profileUrl": "https://www.tiktok.com/@charlidamelio",
"scrapedAt": "2026-03-01T12:00:00.000Z"
}

Video Output

{
"type": "video",
"videoId": "7340123456789012345",
"description": "new dance with @addisonre #fyp #dance #viral",
"author": "charlidamelio",
"authorDisplayName": "Charli D'Amelio",
"playCount": 45200000,
"likeCount": 3800000,
"commentCount": 42000,
"shareCount": 125000,
"bookmarkCount": 89000,
"createTime": "2026-02-28T18:30:00.000Z",
"createTimeRaw": 1740766200,
"duration": 15,
"videoUrl": "https://www.tiktok.com/@charlidamelio/video/7340123456789012345",
"thumbnailUrl": "https://p16-sign-va.tiktokcdn.com/...",
"musicTitle": "original sound",
"musicAuthor": "Charli D'Amelio",
"musicUrl": "https://sf16-ies-music-va.tiktokcdn.com/...",
"musicAlbum": "",
"hashtags": ["fyp", "dance", "viral"],
"mentions": ["addisonre"],
"isAd": false,
"isPinned": false,
"scrapedAt": "2026-03-01T12:00:00.000Z"
}

Hashtag Output

{
"type": "hashtag",
"hashtag": "cooking",
"hashtagId": "20129",
"description": "Share your cooking videos!",
"viewCount": 892000000000,
"videoCount": 45600000,
"hashtagUrl": "https://www.tiktok.com/tag/cooking",
"scrapedAt": "2026-03-01T12:00:00.000Z"
}

How It Works

TikTok server-renders initial page data into embedded JSON script tags. This actor:

  1. Fetches the public TikTok page via HTTP (no browser required)
  2. Looks for embedded data in __UNIVERSAL_DATA_FOR_REHYDRATION__ (primary), SIGI_STATE (fallback), or __NEXT_DATA__
  3. Parses the JSON to extract profile stats, video metadata, and hashtag info
  4. Falls back to HTML meta tags (og:title, og:description) if JSON extraction fails
  5. Saves structured data to the Apify dataset

This approach is fast and lightweight (no Puppeteer/Playwright overhead), but is limited to the data TikTok embeds in the initial page load (typically 20-30 videos per profile).

Important Notes

Data Limitations

  • TikTok embeds a limited number of videos in the initial HTML (typically 20-30). For complete video histories, you would need browser-based scrolling.
  • Comments are only available if TikTok pre-renders them in the page data.
  • Private accounts will return limited or no data.

Anti-Bot Measures

TikTok has aggressive bot detection. For reliable scraping:

  • Always use residential proxies -- datacenter IPs are almost always blocked
  • Keep concurrency low (1-2) to avoid triggering rate limits
  • The actor handles CAPTCHAs gracefully -- it logs a warning and saves any data collected before the block

This actor scrapes only publicly available data from TikTok's web interface. No login, authentication, or private data access is involved. Users are responsible for ensuring their use complies with TikTok's Terms of Service and applicable laws. This tool is intended for research and analytics purposes.

Proxy Configuration

For best results, use Apify's residential proxies:

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Without proxies, TikTok will likely block requests from Apify's datacenter IPs. The actor will still attempt to scrape but may encounter CAPTCHAs on most or all requests.

Pricing (Pay Per Event)

This actor uses Apify's pay-per-event model:

  • 1 event per profile scraped
  • 1 event per video scraped
  • 1 event per hashtag scraped

You only pay for successfully extracted data.