Tiktok Video Scraper avatar

Tiktok Video Scraper

Pricing

from $1.60 / 1,000 video results

Go to Apify Store
Tiktok Video Scraper

Tiktok Video Scraper

Extract TikTok video metadata including caption, hashtags, mentions, views, likes, comments, shares, saves, author info, music data, and video details. Includes analytics like engagement rate and viral score. Ideal for marketing research, influencer analysis, and AI datasets.

Pricing

from $1.60 / 1,000 video results

Rating

0.0

(0)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Share

Extract comprehensive TikTok video metadata — 58 structured fields including engagement metrics, author profiles, music data, video technical specs, computed engagement rates, and viral scoring. Supports video URLs, IDs, creator profiles, hashtags, and search keywords. Export analytics-ready datasets in JSON, CSV, or Excel.

TikTok Video Scraper


Key Features

  • 58 Structured Fields: Video metadata, author profile, music info, technical specs, engagement rates, and viral scoring
  • Multiple Input Sources: Scrape by video URL, video ID, username, hashtag, or search keyword
  • Computed Analytics: Engagement rate, like rate, comment rate, share rate, save rate, viral score
  • 5 Dataset Views: Overview, Engagement, Authors, Music, Video Details — each with a focused table on Apify
  • Bulk Extraction: Configurable max videos per source (up to 500)
  • Optional Author/Music: Toggle author profile and music data in output
  • Proxy Support: Apify proxy integration for reliable large-scale scraping
  • Pay-Per-Result: Only pay for results you get — no wasted compute

Best for: Marketing agencies, social analytics platforms, AI dataset builders, ecommerce brands, and content strategists


At a Glance

FeatureValue
Output Fields58 structured fields per video
Dataset Views5 tabs (Overview, Engagement, Authors, Music, Video Details)
Input SourcesURLs, IDs, usernames, hashtags, search keywords
Proxy RequiredNo (optional for large runs)
Concurrency5 parallel requests
Computed MetricsEngagement rate, like rate, comment rate, share rate, save rate, viral score

How It Works

  1. Provide Sources — Enter video URLs, IDs, usernames, hashtags, or search keywords
  2. Crawl TikTok — Puppeteer navigates to each page and extracts embedded data
  3. Parse Metadata — Extracts from server-side rendered data and internal APIs
  4. Compute Analytics — Calculates engagement rates and viral scoring
  5. Export Dataset — Download as JSON, CSV, or Excel via Apify platform

Output

Table View

TikTok Video Scraper — Output Overview Table View

Overview JSON View

{
"videoId": "7615954999562095890",
"videoUrl": "https://www.tiktok.com/@ai.rabbit.hime/video/7615954999562095890",
"caption": "\ud83d\udda4. #foryoupage #viral #trending #explore #tiktok ",
"textLanguage": "un",
"hashtags": ["foryoupage", "viral", "trending", "explore", "tiktok"],
"mentions": [],
"createTimeISO": "2026-03-11T11:15:10.000Z",
"duration": 14,
"views": 987,
"likes": 303,
"comments": 0,
"shares": 6,
"collectCount": 44,
"authorUsername": "ai.rabbit.hime",
"authorVerified": false,
"region": null,
"engagementRate": 0.357649,
"viralScore": 41.44,
"inputSource": "search",
"inputQuery": "trending"
}

Engagement JSON View

{
"videoId": "7615954999562095890",
"caption": "\ud83d\udda4. #foryoupage #viral #trending #explore #tiktok ",
"authorUsername": "ai.rabbit.hime",
"views": 987,
"likes": 303,
"comments": 0,
"shares": 6,
"collectCount": 44,
"repostCount": 0,
"engagementRate": 0.357649,
"likeRate": 0.306991,
"commentRate": null,
"shareRate": 0.006079,
"saveRate": 0.04458,
"viralScore": 41.44,
"captionLength": 51,
"hashtagCount": 5,
"mentionCount": 0,
"isAd": false,
"isSponsored": false
}

Authors JSON View

{
"videoId": "7615954999562095890",
"authorId": "7601123447783113729",
"authorUsername": "ai.rabbit.hime",
"authorNickname": "Goth",
"authorProfileUrl": "https://www.tiktok.com/@ai.rabbit.hime",
"authorVerified": false,
"authorBio": "Follower\ud83d\udda4",
"authorAvatar": "https://p19-common-sign.tiktokcdn-us.com/...",
"authorFollowers": 17600,
"authorFollowing": 0,
"authorTotalLikes": 83800,
"authorVideoCount": 26,
"authorPrivateAccount": false
}

Music JSON View

{
"videoId": "7615954999562095890",
"caption": "\ud83d\udda4. #foryoupage #viral #trending #explore #tiktok ",
"authorUsername": "ai.rabbit.hime",
"musicId": "7615955023960214288",
"musicTitle": "\uc624\ub9ac\uc9c0\ub110 \uc0ac\uc6b4\ub4dc - Goth",
"musicAuthor": "Goth",
"musicOriginal": true,
"musicPlayUrl": "https://v16-webapp-prime.us.tiktok.com/...",
"musicCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/..."
}

Video Details JSON View

{
"videoId": "7615954999562095890",
"videoUrl": "https://www.tiktok.com/@ai.rabbit.hime/video/7615954999562095890",
"caption": "\ud83d\udda4. #foryoupage #viral #trending #explore #tiktok ",
"createTime": 1773227710,
"createTimeISO": "2026-03-11T11:15:10.000Z",
"duration": 14,
"videoHeight": 1280,
"videoWidth": 720,
"videoFormat": "mp4",
"videoDefinition": "720p",
"videoCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"videoOriginalCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoDynamicCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"isAd": false,
"isSponsored": false,
"isPinned": false,
"isSlideshow": false,
"region": null,
"effectStickers": ["Graffiti memories"],
"retrievedAt": "2026-03-11T12:08:10.892Z"
}

All Fields JSON View

{
"videoId": "7615954999562095890",
"videoUrl": "https://www.tiktok.com/@ai.rabbit.hime/video/7615954999562095890",
"caption": "\ud83d\udda4. #foryoupage #viral #trending #explore #tiktok ",
"textLanguage": "un",
"hashtags": ["foryoupage", "viral", "trending", "explore", "tiktok"],
"mentions": [],
"createTime": 1773227710,
"createTimeISO": "2026-03-11T11:15:10.000Z",
"duration": 14,
"views": 987,
"likes": 303,
"comments": 0,
"shares": 6,
"collectCount": 44,
"repostCount": 0,
"authorId": "7601123447783113729",
"authorUsername": "ai.rabbit.hime",
"authorNickname": "Goth",
"authorProfileUrl": "https://www.tiktok.com/@ai.rabbit.hime",
"authorVerified": false,
"authorBio": "Follower\ud83d\udda4",
"authorAvatar": "https://p19-common-sign.tiktokcdn-us.com/...",
"authorFollowers": 17600,
"authorFollowing": 0,
"authorTotalLikes": 83800,
"authorVideoCount": 26,
"authorPrivateAccount": false,
"musicId": "7615955023960214288",
"musicTitle": "\uc624\ub9ac\uc9c0\ub110 \uc0ac\uc6b4\ub4dc - Goth",
"musicAuthor": "Goth",
"musicOriginal": true,
"musicPlayUrl": "https://v16-webapp-prime.us.tiktok.com/...",
"musicCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoHeight": 1280,
"videoWidth": 720,
"videoFormat": "mp4",
"videoDefinition": "720p",
"videoCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"videoOriginalCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoDynamicCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"isAd": false,
"isSponsored": false,
"isPinned": false,
"isSlideshow": false,
"region": null,
"effectStickers": ["Graffiti memories"],
"captionLength": 51,
"hashtagCount": 5,
"mentionCount": 0,
"engagementRate": 0.357649,
"likeRate": 0.306991,
"commentRate": null,
"shareRate": 0.006079,
"saveRate": 0.04458,
"viralScore": 41.44,
"retrievedAt": "2026-03-11T12:08:10.892Z",
"inputSource": "search",
"inputQuery": "trending"
}

Output Schema (58 Fields)

Video (9 fields)

FieldTypeDescription
videoIdStringTikTok video ID
videoUrlStringFull video URL
captionStringVideo caption/description
textLanguageStringDetected language of the caption
hashtagsArrayHashtags used in the video
mentionsArray@mentioned usernames
createTimeIntegerUnix timestamp (seconds)
createTimeISOStringISO 8601 creation timestamp
durationIntegerVideo duration in seconds

Engagement (6 fields)

FieldTypeDescription
viewsIntegerView/play count
likesIntegerLike/digg count
commentsIntegerComment count
sharesIntegerShare count
collectCountIntegerBookmark/save count
repostCountIntegerRepost count

Author (12 fields)

FieldTypeDescription
authorIdStringCreator user ID
authorUsernameStringCreator @username
authorNicknameStringCreator display name
authorProfileUrlStringProfile page URL
authorVerifiedBooleanVerified account badge
authorBioStringProfile bio/signature
authorAvatarStringAvatar image URL
authorFollowersIntegerFollower count
authorFollowingIntegerFollowing count
authorTotalLikesIntegerTotal likes received
authorVideoCountIntegerNumber of videos posted
authorPrivateAccountBooleanWhether account is private

Music (6 fields)

FieldTypeDescription
musicIdStringSound/music ID
musicTitleStringSound/music title
musicAuthorStringSound/music author
musicOriginalBooleanWhether it's an original sound
musicPlayUrlStringMusic audio URL
musicCoverUrlStringMusic cover image URL

Video Technical (7 fields)

FieldTypeDescription
videoHeightIntegerVideo height in pixels
videoWidthIntegerVideo width in pixels
videoFormatStringVideo format (e.g., mp4)
videoDefinitionStringVideo quality (e.g., 720p)
videoCoverUrlStringVideo thumbnail URL
videoOriginalCoverUrlStringOriginal cover image URL
videoDynamicCoverUrlStringAnimated/dynamic cover GIF URL

Flags & Metadata (5 fields)

FieldTypeDescription
isAdBooleanWhether the video is an ad
isSponsoredBooleanWhether the video is sponsored
isPinnedBooleanWhether pinned to profile
isSlideshowBooleanWhether it's a photo slideshow
regionStringVideo region/country code

Derived (4 fields)

FieldTypeDescription
effectStickersArrayEffect/sticker names used
captionLengthIntegerCharacter count of caption
hashtagCountIntegerNumber of hashtags
mentionCountIntegerNumber of @mentions

Engagement Rates (6 fields)

FieldTypeDescription
engagementRateFloat(likes + comments + shares + saves) / views
likeRateFloatlikes / views
commentRateFloatcomments / views
shareRateFloatshares / views
saveRateFloatsaves / views
viralScoreFloatWeighted viral metric (0-100+)

Meta (3 fields)

FieldTypeDescription
retrievedAtStringISO 8601 scrape timestamp
inputSourceStringInput type: video, profile, hashtag, search
inputQueryStringThe input value that triggered this extraction

Input Parameters

ParameterTypeDefaultDescription
videoUrlsArray[]TikTok video URLs to scrape
videoIdsArray[]TikTok video IDs (numeric)
usernamesArray[]Creator profiles to scrape videos from
hashtagsArray[]Hashtag pages to scrape videos from
searchKeywordsArray["trending"]Search TikTok by keyword
maxVideosInteger5Max videos per source (1-500)
includeAuthorBooleantrueInclude author profile data (12 fields)
includeMusicBooleantrueInclude music/sound data (6 fields)
proxyConfigurationObjectnullApify proxy configuration

Quick Start

Example 1: Search by Keyword

{
"searchKeywords": ["trending"],
"maxVideos": 50,
"includeAuthor": true,
"includeMusic": true
}

Example 2: Search + Hashtag Combined

{
"searchKeywords": ["trending"],
"hashtags": ["viral"],
"maxVideos": 50,
"includeAuthor": true,
"includeMusic": true
}

Example 3: Creator Profile with Proxy

{
"usernames": ["travelguru"],
"maxVideos": 50,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Engagement Rates & Viral Score

All engagement rates are calculated as ratios (0 to 1). Returns null if views is 0 or the metric is unavailable.

Viral Score uses a weighted formula:

viralScore = (shares * 3 + saves * 2 + comments * 1.5 + likes) / views * 100
Score RangeInterpretation
0 - 5Low engagement
5 - 10Average engagement
10 - 25Good viral potential
25 - 50Strong viral potential
50+Exceptional / highly viral

Dataset Views

The output is organized into 5 focused tabs on the Apify platform:

TabFieldsWhat You See
Overview20Quick summary — video, caption, key metrics, author, viral score
Engagement20All counts + computed rates + viral score + content flags
Authors13Full creator profiles — bio, avatar, followers, verified
Music9Sound info — title, artist, original sound flag, cover
Video Details20Technical specs, covers, timestamps, flags, effects

Use Cases

Influencer Marketing

Analyze TikTok creator performance and content engagement. Compare viral scores across creators to identify top performers.

Competitor Monitoring

Track competitor campaigns, viral content, and hashtag performance. Monitor shares, saves, and repost counts over time.

Trend Analysis

Identify trending hashtags, sounds, and content styles at scale. Use music data and effect stickers to spot emerging trends.

AI Dataset Generation

Generate structured datasets for training recommendation, sentiment, or content classification models.

Social Listening

Understand audience engagement through video metrics across topics. Filter by engagement rate and viral score.


Performance

MetricValue
Concurrency5 parallel requests
Request timeout60 seconds
RetryUp to 2 retries per request
Session pooling5 sessions, 20 uses each

Data Export

Supported formats (via Apify platform):

  • JSON
  • CSV
  • Excel
  • HTML

Notes

  • Music play URLs are time-limited signed URLs that may expire
  • textLanguage returns a language code (e.g., "en", "es") or "un" (undetermined) if TikTok does not provide language metadata
  • region is extracted from multiple sources (video metadata, author profile, diversification labels)

Pricing

Pay-per-result model — you only pay for what you get.

EventTriggerCount
search-queryEach search/hashtag/profile processed1 per source
video-resultEach video successfully extracted1 per video

Proxy costs (if enabled) are billed to your Apify account separately.


Compliance

  • Collects only publicly available TikTok video data
  • Does not bypass CAPTCHAs or access gated content
  • Does not collect private account data
  • Intended for legitimate research, analytics, and business intelligence
  • Users are responsible for compliance with applicable laws in their jurisdiction

Support

  • Issues: Report via GitHub or Apify support
  • Feature requests: Open an issue with your use case

Built by Coregent Digital Studio — Production-ready TikTok video metadata extraction