Tiktok Video Scraper avatar

Tiktok Video Scraper

Pricing

from $1.80 / 1,000 video scrapeds

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.80 / 1,000 video scrapeds

Rating

5.0

(1)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

40

Total users

10

Monthly active users

13 days ago

Last modified

Share

Extract comprehensive TikTok video metadata — 70+ structured fields including engagement metrics, rich author profiles (incl. commerce fields), music data, video technical specs, and computed engagement rates + viral scoring you won't find elsewhere. Optionally download videos, covers, avatars, music art, and slideshow images to permanent storage and generate text transcripts. Supports video URLs, IDs, creator profiles, hashtags, and search keywords. Export analytics-ready datasets in JSON, CSV, or Excel.

TikTok Video Scraper


Key Features

  • 70+ Structured Fields: Video metadata, rich author profile (incl. commerce/creator-marketplace fields), music info, technical specs, engagement rates, and viral scoring
  • Computed Analytics (unique): Engagement rate, like rate, comment rate, share rate, save rate, and a weighted viral score — pre-calculated per video, so you don't have to
  • Multiple Input Sources: Scrape by video URL, video ID, creator, hashtag, or search keyword — one auto-detecting box
  • Fast & Browserless: Discovery and downloads run over a hosted API (no Chromium) — a typical search or profile run completes in seconds
  • Media Downloads: Optionally download the MP4 (choose low or high quality), cover, avatar, music art, and slideshow images — re-hosted permanently on Apify (raw TikTok CDN URLs expire within days)
  • Transcripts & Subtitles: Extract native caption tracks and generate a plain-text transcript
  • Filtering & Sorting: By posted-within date, like count, and creator-follower count; sort by latest/popular/oldest; include reposts; same-creator video discovery
  • 6 Dataset Views: Overview, Engagement, Authors, Music, Video Details, Downloads & Media
  • Transparent Errors: Failed targets produce dataset items with codes (PROFILE_PRIVATE, POST_NOT_FOUND_OR_PRIVATE, BLOCKED, NO_DATA) instead of vanishing
  • Pay-Per-Event: Pay for the core result, and only for the extras (downloads, transcripts, filtering) you actually turn on

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


At a Glance

FeatureValue
Output Fields70+ structured fields per video
Dataset Views6 tabs (Overview, Engagement, Authors, Music, Video Details, Downloads & Media)
Input SourcesVideo URLs/IDs, plus creators, hashtags & keywords (one auto-detecting box)
ExtrasVideo/media download (low or high), transcripts, filtering & sorting, related videos
SpeedBrowserless (no Chromium) — discovery/downloads over a hosted API, runs finish in seconds
ProxyAutomatic — runs on Apify Residential internally (no setup, not user-configurable)
Computed MetricsEngagement rate, like rate, comment rate, share rate, save rate, viral score

Downloads, Transcripts, Filtering

All of these are off by default — enable only what you need.

CapabilityInput(s)Where it lands
Download video (MP4)shouldDownloadVideos + videoDownloadQuality (low | high)downloadAddr / mediaUrls (permanent Apify URLs)
Download covers / avatars / music art / slideshowshouldDownloadCovers, shouldDownloadAvatars, shouldDownloadMusicCovers, shouldDownloadSlideshowImagesthe matching field is replaced with a permanent URL (original kept under *Original)
Transcript / subtitlesdownloadSubtitlesOptions = subtitles | transcriptsubtitleLinks, transcriptionLink (plain-text)
Filtering & sortingvideoSearchDateFilter (posted-within), mostDiggs, leastDiggs, minCreatorFollowers, maxCreatorFollowers, includeReposts, profileSortingapplied before results are saved
Related videosscrapeRelatedVideos, maxRelatedVideosthe source creator's other recent videos are scraped (up to N per input video)

videoDownloadQuality: low picks the smallest-bitrate MP4 (much cheaper to download and store); high keeps the full-resolution / no-watermark file. Only applies when shouldDownloadVideos is on.

Note on "related videos": this returns more recent videos from the same creator as each input video's author — not TikTok's personalized algorithmic "For You" recommendations, which aren't reliably available without a logged-in session.

Why permanent media? Raw TikTok CDN URLs are signed with an x-expires token and stop working within days. When a download toggle is on, this actor fetches the asset and re-hosts it on Apify storage so your dataset never rots.


How It Works

  1. Provide Sources — Enter video URLs/IDs, or find videos by creator, hashtag, or keyword
  2. Fetch Data (browserless) — Discovery (profile/hashtag/search) and per-video detail come from a hosted TikTok API over plain HTTP — no browser to boot, results in seconds; a resilient browser path is kept as a fallback
  3. Parse & Normalize — Extract 70+ fields from the API/SSR payloads
  4. Compute Analytics — Calculate engagement rates and viral scoring
  5. Enrich (optional) — Download & re-host media, generate transcripts, apply filters/sorting
  6. Export Dataset — Download as JSON, CSV, or Excel via the Apify platform

Output

Table View

TikTok Video Scraper — Output Overview Table View

Overview JSON View

{
"videoId": "7618559483647773960",
"videoUrl": "https://www.tiktok.com/@aigonew1ld/video/7618559483647773960",
"caption": "Stick The Landing 🐶✨ #Chihuahua #Gymnastics #Olympics #AIvideo",
"textLanguage": "en",
"hashtagNames": ["chihuahua", "gymnastics", "olympics", "aivideo"],
"createTimeISO": "2026-03-19T11:00:00.000Z",
"duration": 10,
"views": 1769743,
"likes": 127301,
"comments": 1300,
"shares": 124162,
"collectCount": 8795,
"authorUsername": "aigonew1ld",
"authorVerified": false,
"region": "CA",
"engagementRate": 0.147794,
"viralScore": 29.34,
"inputSource": "hashtag",
"inputQuery": "aivideo"
}

Engagement JSON View

{
"videoId": "7618559483647773960",
"caption": "Stick The Landing 🐶✨ #Chihuahua #Gymnastics #Olympics #AIvideo",
"authorUsername": "aigonew1ld",
"views": 1769743,
"likes": 127301,
"comments": 1300,
"shares": 124162,
"collectCount": 8795,
"repostCount": 0,
"engagementRate": 0.147794,
"likeRate": 0.071932,
"commentRate": 0.000735,
"shareRate": 0.070158,
"saveRate": 0.00497,
"viralScore": 29.34,
"captionLength": 62,
"hashtagCount": 4,
"mentionCount": 0,
"isAd": false,
"isSponsored": false,
"isSensitive": false
}

Authors JSON View

{
"videoId": "7618559483647773960",
"authorId": "7518237527196550152",
"authorUsername": "aigonew1ld",
"authorNickname": "AIGoneWILD",
"authorProfileUrl": "https://www.tiktok.com/@aigonew1ld",
"authorVerified": false,
"authorBio": "Mind-melting, glitch-ridden, WTF-worthy AI videos.",
"authorAvatar": "https://p19-common-sign.tiktokcdn-us.com/...",
"authorFollowers": 512300,
"authorFollowing": 41,
"authorTotalLikes": 18400000,
"authorVideoCount": 214,
"authorPrivateAccount": false,
"authorBioLink": "https://linktr.ee/aigonewild",
"authorTtSeller": false,
"authorIsCommerceUser": false,
"authorRoomId": ""
}

Music JSON View

{
"videoId": "7618559483647773960",
"authorUsername": "aigonew1ld",
"musicId": "7618559528111558000",
"musicTitle": "original sound - aigonew1ld",
"musicAuthor": "AIGoneWILD",
"musicOriginal": true,
"musicPlayUrl": "https://v19.tiktokcdn-us.com/...",
"musicCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/..."
}

Video Details JSON View

{
"videoId": "7618559483647773960",
"videoUrl": "https://www.tiktok.com/@aigonew1ld/video/7618559483647773960",
"createTime": 1773918000,
"createTimeISO": "2026-03-19T11:00:00.000Z",
"duration": 10,
"videoHeight": 1920,
"videoWidth": 1080,
"videoFormat": "mp4",
"videoDefinition": "1080p",
"videoCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoOriginalCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoDynamicCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"isAd": false,
"isSponsored": false,
"isPinned": false,
"isSlideshow": false,
"isSensitive": false,
"region": "CA",
"effectStickers": [],
"retrievedAt": "2026-07-06T02:52:48.314Z"
}

All Fields JSON View

{
"videoId": "7618559483647773960",
"videoUrl": "https://www.tiktok.com/@aigonew1ld/video/7618559483647773960",
"caption": "Stick The Landing 🐶✨ #Chihuahua #Gymnastics #Olympics #AIvideo",
"textLanguage": "en",
"hashtags": [
{ "id": "18179", "name": "chihuahua", "title": "chihuahua", "cover": "" },
{ "id": "1636822982236165", "name": "aivideo", "title": "aivideo", "cover": "" }
],
"hashtagNames": ["chihuahua", "gymnastics", "olympics", "aivideo"],
"mentions": [],
"detailedMentions": [],
"subtitleLinks": [
{ "language": "eng-US", "source": "ASR", "format": "webvtt", "url": "https://v16-cla.tiktokcdn-us.com/..." }
],
"createTime": 1773918000,
"createTimeISO": "2026-03-19T11:00:00.000Z",
"duration": 10,
"views": 1769743,
"likes": 127301,
"comments": 1300,
"shares": 124162,
"collectCount": 8795,
"repostCount": 0,
"authorId": "7518237527196550152",
"authorUsername": "aigonew1ld",
"authorNickname": "AIGoneWILD",
"authorProfileUrl": "https://www.tiktok.com/@aigonew1ld",
"authorVerified": false,
"authorBio": "Mind-melting, glitch-ridden, WTF-worthy AI videos.",
"authorAvatar": "https://p19-common-sign.tiktokcdn-us.com/...",
"authorAvatarOriginal": null,
"authorFollowers": 512300,
"authorFollowing": 41,
"authorTotalLikes": 18400000,
"authorVideoCount": 214,
"authorPrivateAccount": false,
"authorFriends": null,
"authorBioLink": "https://linktr.ee/aigonewild",
"authorTtSeller": false,
"authorIsCommerceUser": false,
"authorRoomId": "",
"musicId": "7618559528111558000",
"musicTitle": "original sound - aigonew1ld",
"musicAuthor": "AIGoneWILD",
"musicOriginal": true,
"musicPlayUrl": "https://v19.tiktokcdn-us.com/...",
"musicCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"musicCoverUrlOriginal": null,
"videoHeight": 1920,
"videoWidth": 1080,
"videoFormat": "mp4",
"videoDefinition": "1080p",
"videoCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoCoverUrlOriginal": null,
"videoOriginalCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"videoDynamicCoverUrl": "https://p19-common-sign.tiktokcdn-us.com/...",
"isAd": false,
"isSponsored": false,
"isPinned": false,
"isSlideshow": false,
"isSensitive": false,
"region": "CA",
"slideshowImages": [],
"slideshowImagesOriginal": null,
"downloadAddr": "https://api.apify.com/v2/key-value-stores/<store>/records/video-aigonew1ld-7618559483647773960.mp4",
"mediaUrls": ["https://api.apify.com/v2/key-value-stores/<store>/records/video-aigonew1ld-7618559483647773960.mp4"],
"transcriptionLink": "https://api.apify.com/v2/key-value-stores/<store>/records/transcript-aigonew1ld-7618559483647773960.txt",
"effectStickers": [],
"captionLength": 62,
"hashtagCount": 4,
"mentionCount": 0,
"engagementRate": 0.147794,
"likeRate": 0.071932,
"commentRate": 0.000735,
"shareRate": 0.070158,
"saveRate": 0.00497,
"viralScore": 29.34,
"retrievedAt": "2026-07-06T02:52:48.314Z",
"inputSource": "hashtag",
"inputQuery": "aivideo"
}

downloadAddr, mediaUrls, transcriptionLink, slideshowImages, and the *Original fields are populated only when the matching download/transcript toggle is on; otherwise they are null/[].


Output Schema (70+ Fields)

Video (12 fields)

FieldTypeDescription
videoIdStringTikTok video ID
videoUrlStringFull video URL
captionStringVideo caption/description
textLanguageStringDetected language of the caption
hashtagsArrayHashtags as objects { id, name, title, cover }
hashtagNamesArrayFlat list of hashtag names (spreadsheet-friendly)
mentionsArray@mentioned user IDs/usernames
detailedMentionsArrayMentions as objects { id, name }
subtitleLinksArrayNative caption tracks { language, source, format, url }
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 (17 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 the account is private
authorFriendsIntegerMutual-friend count
authorBioLinkStringExternal link in bio
authorTtSellerBooleanTikTok Shop seller flag
authorIsCommerceUserBooleanCreator-marketplace / commerce flag
authorRoomIdStringLive room ID (if currently/last live)

Note: the deepest author stats (authorFollowers, authorTotalLikes, authorVideoCount, authorFriends, authorBioLink) are richest on single video URL and creator profile scrapes. In large hashtag/search feeds, some of these may come back as 0/null because TikTok's feed payloads omit them.

Music (6 fields)

FieldTypeDescription
musicIdStringSound/music ID
musicTitleStringSound/music title
musicAuthorStringSound/music author
musicOriginalBooleanWhether it's an original sound
musicPlayUrlStringMusic audio URL (time-limited)
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 URL

Flags & Metadata (6 fields)

FieldTypeDescription
isAdBooleanWhether the video is an ad
isSponsoredBooleanWhether the video is sponsored
isPinnedBooleanWhether pinned to the profile
isSlideshowBooleanWhether it's a photo slideshow
isSensitiveBooleanWhether flagged as sensitive/age-restricted
regionStringVideo region/country code

Media & Downloads (4 fields)

FieldTypeDescription
slideshowImagesArraySlideshow/photo-post image URLs (re-hosted if downloaded)
downloadAddrStringPermanent Apify URL of the downloaded MP4 (when enabled)
mediaUrlsArrayArray of downloaded media URLs
transcriptionLinkStringPermanent Apify URL of the plain-text transcript (when enabled)

When a download re-hosts an asset, the original TikTok URL is preserved under a *Original companion field (authorAvatarOriginal, videoCoverUrlOriginal, musicCoverUrlOriginal, slideshowImagesOriginal).

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
videosArray[]TikTok videos to scrape — full URLs or bare numeric IDs (mix freely)
findVideosByArray[]Discover videos by @creator, #hashtag, or search keyword — mix freely; each entry's type is auto-detected. Falls back to trending only if this and videos are both empty
maxVideosInteger50Max videos per source (1-500)
shouldDownloadVideosBooleanfalseDownload & permanently re-host the MP4
videoDownloadQualityStringlowMP4 quality when downloading — low (cheapest) or high (full-res / no-watermark)
shouldDownloadCovers / Avatars / MusicCovers / SlideshowImagesBooleanfalseDownload & permanently re-host the matching images
videoKvStoreIdOrNameStringOptional named key-value store for downloaded media
downloadSubtitlesOptionsStringoffsubtitles (links) or transcript (plain text) — native captions
videoSearchDateFilterStringall"Posted within" window — 24h, 7d, 30d, 90d, 180d
mostDiggs / leastDiggsIntegerKeep videos with at most / at least this many likes
minCreatorFollowers / maxCreatorFollowersIntegerKeep videos whose creator has ≥ / ≤ this many followers
includeRepostsBooleanfalseAlso include the creator's reposted videos
profileSortingStringlatestSort profile videos: latest, popular, or oldest
scrapeRelatedVideosBooleanfalseAlso scrape the source creator's other recent videos (for video sources)
maxRelatedVideosInteger10How many extra videos from the source creator to scrape per input video (1-50)

Proxy note: there is no proxy input — the actor always scrapes through Apify Residential automatically (see Proxy policy).

Author & music data are always included in the output — no toggle needed.

Legacy note: the older videoUrls/videoIds fields are still read if present, but the single videos field replaces both — paste URLs or IDs interchangeably. Likewise, the older usernames, hashtags, and searchKeywords fields are still accepted, but findVideosBy replaces all three — creators, hashtags, and keywords go in one box.


Quick Start

1. Search by keyword

{
"findVideosBy": ["trending"],
"maxVideos": 50
}

2. Mix creators, hashtags & keywords (one box)

{
"findVideosBy": ["@travelguru", "#aivideo", "summer recipes"],
"maxVideos": 100
}

3. Specific videos by URL or ID

{
"videos": [
"https://www.tiktok.com/@aigonew1ld/video/7618559483647773960",
"7593733846680505620"
]
}

4. Download the MP4 + transcript (low quality = cheapest)

{
"findVideosBy": ["#aivideo"],
"maxVideos": 25,
"shouldDownloadVideos": true,
"videoDownloadQuality": "low",
"downloadSubtitlesOptions": "transcript"
}

5. Creator profile — top posts, high-quality download

{
"findVideosBy": ["@aigonew1ld"],
"maxVideos": 200,
"profileSorting": "popular",
"shouldDownloadVideos": true,
"videoDownloadQuality": "high"
}

6. Filter by recency, popularity & creator size

{
"findVideosBy": ["#aivideo"],
"maxVideos": 100,
"videoSearchDateFilter": "30d",
"leastDiggs": 10000,
"minCreatorFollowers": 50000
}

7. Photo/slideshow post + slideshow image download

{
"videos": ["https://www.tiktok.com/@appmillers/photo/7642915002831326471"],
"shouldDownloadSlideshowImages": true
}

🚦 Proxy policy

TikTok blocks datacenter IPs aggressively and throttles any single IP after a burst, so the actor always scrapes through Apify Residential automatically. There is no proxy input — it's handled internally, including rotating to a fresh IP when TikTok throttles the current one. You don't configure or pay for proxy separately; the residential cost is built into the per-feature pricing. Because discovery is now browserless (a hosted API, not a rendered page), the per-run cost is low — the residential/bandwidth cost is dominated by the optional video downloads (the MP4 files themselves).


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 6 focused tabs on the Apify platform:

TabWhat You See
OverviewQuick summary — video, caption, key metrics, author, viral score
EngagementAll counts + computed rates + viral score + content flags
AuthorsFull creator profiles — bio, avatar, followers, verified, commerce
MusicSound info — title, artist, original-sound flag, cover
Video DetailsTechnical specs, covers, timestamps, flags, effects, sensitivity
Downloads & MediaDownloaded MP4/covers, subtitle links, transcript, slideshow images

Pricing

Pay-per-event — you pay for the core result plus only the extras you enable. Prices are shown on the Actor's Apify page. There is no separate proxy charge (Apify Residential is handled internally and built into these events).

EventCharged perFires when
video-scrapedoutput recordevery video saved to the dataset — the baseline every run pays
filtering-appliedrun (once)the first saved record of a run where any Filtering & sorting option is non-default
video-downloaded-highoutput recordan MP4 is downloaded & re-hosted with videoDownloadQuality: high
video-downloaded-lowoutput recordan MP4 is downloaded & re-hosted with videoDownloadQuality: low (default)
transcript-generatedoutput recorda text transcript is produced (downloadSubtitlesOptions: transcript)
slideshow-image-downloadedimageeach image re-hosted from a photo/slideshow post (shouldDownloadSlideshowImages)

How to keep cost low

  • Metadata-only runs (no downloads, no transcript, no filter) pay just video-scraped per result — the cheapest mode, and it still includes all 70+ fields, engagement rates, and viral score.
  • Downloads: prefer videoDownloadQuality: low — it bills the cheaper video-downloaded-low event and pulls far less data than high. Use high only when you need full-resolution / no-watermark files.
  • Filtering: filtering-applied is charged once per run, not per video — so a single filtered run over 500 videos pays that surcharge exactly once. It reflects the cost of scanning many videos to return a filtered subset.
  • Slideshows: slideshow-image-downloaded bills per image, so a 20-image post costs 20×. Turn shouldDownloadSlideshowImages on only when you need the images.
  • Not charged: cover, avatar, and music-cover image downloads are free.

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 (with captions, transcripts, and downloaded media) for training recommendation, sentiment, or content-classification models.

Social Listening

Understand audience engagement through video metrics across topics. Filter by engagement rate, viral score, recency, and creator size.


Performance

MetricValue
Discovery/detailBrowserless (hosted API) — runs finish in seconds
ConcurrencyUp to 10 parallel requests (browserless)
RetryUp to 4 retries per request
PaginationDiscovery pages automatically to maxVideos (up to 500)

Data Export

Supported formats (via Apify platform):

  • JSON
  • CSV
  • Excel
  • HTML

Notes

  • Music play URLs are time-limited signed URLs that may expire — enable shouldDownloadMusicCovers / media downloads for permanent copies
  • 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)
  • Deep author stats (followers/likes/videos) are richest on video-URL and profile scrapes; hashtag/search feeds may return some as 0/null (TikTok's feed payloads omit them)
  • Failed targets are reported as structured error items (PROFILE_PRIVATE, POST_NOT_FOUND_OR_PRIVATE, BLOCKED, NO_DATA) rather than being silently dropped

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