TikTok Scraper - Videos, Profiles & Engagement Analytics
Pricing
from $2.55 / 1,000 video/profile results
TikTok Scraper - Videos, Profiles & Engagement Analytics
Scrape TikTok profiles and videos: captions, stats, hashtags, engagement rate, virality score, sponsorship detection and watermark-free download links. Export to CSV, Excel, JSON.
Pricing
from $2.55 / 1,000 video/profile results
Rating
0.0
(0)
Developer
RecordsData
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share
π΅ TikTok Scraper: Videos, Profiles & Analytics
π TikTok Scraper is an Apify Actor that exports TikTok videos and profiles in seconds, with engagement rate, a virality score, sponsorship detection, and watermark-free download links already computed for you, not just raw numbers.
π Last updated: 2026-08-28 Β· π 30+ fields per record Β· verified on a real cloud run against
@tiktokΒ· by RecordsData
TikTok's own app gives you a scroll feed. This Actor gives you a dataset: every video's caption, stats, hashtags, and music. Plus the analysis layer most scrapers leave for you to build yourself. Point it at a list of profiles or specific video URLs and get back a table ready for a spreadsheet, a BI dashboard, or an LLM prompt.
π Table of Contents
- π― Who this is for
- π What it does
- π How it compares
- βοΈ Input
- π Output
- π§Ύ Sample record
- π How to use
- πΌ Business use cases
- π Integrate with any app
- π° Cost
- β FAQ
- πΊοΈ Roadmap
π― Who this is for
| π― Target Audience | π‘ Primary Use Cases |
|---|---|
| π Social media analysts | Competitor & trend tracking |
| π£ Marketing / brand teams | Influencer vetting, sponsorship audits |
| π Growth & content teams | Posting-time and engagement benchmarking |
| π Researchers & journalists | Public discourse and trend analysis |
π What the TikTok Scraper does
- π€ Scrapes recent videos from a list of TikTok profiles
- π Scrapes direct video URLs individually
- π Computes engagement rate and a 0β100 virality score per video
- π° Flags likely sponsored/ad content from caption signals
- #οΈβ£ Cleans hashtags and mentions into real arrays, not raw text
- π Adds posting-time analytics (day of week, hour UTC)
- β¬οΈ Returns a watermark-free download URL for every video
- π₯ Optionally enriches each video with the author's full stats (followers, following, total hearts, video count)
π How it compares to alternatives
| π΅ TikTok Scraper (this) | Narrow single-purpose scrapers | Manual export | |
|---|---|---|---|
| Engagement rate | β built in | β compute yourself | β |
| Virality score | β built in | β | β |
| Sponsored-content detection | β built in | β | β |
| Posting-time analytics | β built in | β | β |
| Clean hashtag/mention arrays | β built in | Often raw text only | β |
| Watermark-free download URL | β | Varies | β |
| Profiles and direct video URLs | β | Usually one or the other | None |
| Scheduling, API, integrations | β (Apify platform) | Varies | β |
| Comments / hashtag search / AI summaries | πΊοΈ roadmap | Some offer today | β |
βοΈ Input
| Field | Type | Default | Description |
|---|---|---|---|
profiles | array | None | TikTok usernames or profile URLs to scrape |
postURLs | array | None | Direct TikTok video URLs to scrape individually |
resultsPerPage | integer | 20 | Max videos to pull per profile |
maxItems | integer | 10 (free) | Cap across everything combined, paid plans up to 1,000,000 |
excludePinnedPosts | boolean | false | Skip videos pinned to the top of a profile |
oldestPostDate | string | None | Only videos posted on/after this date (YYYY-MM-DD) |
newestPostDate | string | None | Only videos posted on/before this date (YYYY-MM-DD) |
scrapeAdditionalAuthorMeta | boolean | true | Fetch full author stats (followers, hearts, video count) |
detectSponsoredContent | boolean | true | Flag likely ads from caption/hashtag signals |
proxyConfiguration | object | RESIDENTIAL | Required for reliable results, TikTok blocks datacenter IPs at scale |
Minimal, scrape 2 profiles:
{"profiles": ["tiktok", "nike"],"resultsPerPage": 25,"maxItems": 50}
Scrape one specific video:
{"postURLs": ["https://www.tiktok.com/@tiktok/video/7679101730352565535"]}
β οΈ Good to know:
postURLsis matched against the author's most recent uploads. Very old videos may not be found. Useprofileswith a higherresultsPerPageinstead for deep history. TikTok's anti-bot defenses are inconsistent by design; the Actor automatically retries a profile once if the first attempt returns nothing.
π Output
| Field | Description |
|---|---|
πΌ imageUrl | Video cover image |
π id | Video ID |
π text | Caption |
π url | Video/profile URL |
π isPinned | Whether the video is pinned to the profile |
π’ isAd | TikTok's own platform-declared ad flag |
π€ authorMeta | Id, name, profile URL, avatar, verified, private account, bio + bio link + (optional) full stats: followers, following, friends, hearts, videos, total diggs given |
π΅ musicMeta | Sound name, author, album, original vs. cover |
π¬ videoMeta | Duration, resolution, format, cover, watermark-free download URL |
β€οΈ diggCount | Likes |
π¬ commentCount | Comments |
βΆοΈ playCount | Plays |
π shareCount | Shares |
β collectCount | Saves |
π repostCount | Reposts |
#οΈβ£ hashtags | Cleaned hashtag array |
@οΈβ£ mentions / detailedMentions | Cleaned @handle array + resolved {id, name, profileUrl} objects |
π° isSponsoredContent / sponsorSignals | Our own ad-detection heuristic + matched signals (independent from the platform's isAd flag) |
π engagementRate | (likes+comments+shares+saves) / plays, as % |
π₯ viralityScore | 0β100 composite score |
π
postedDayOfWeek / postedHourUTC | Posting-time analytics |
π captionLanguage | Detected caption language (heuristic) |
π createTimeISO | When the video was posted |
π scrapedAt | When this record was scraped |
β error | Present only on failed items |
Download the dataset as JSON, CSV, Excel, or XML straight from the Apify Console, or pull it via the API.
π§Ύ Sample record (real data)
π How to use
- Sign up or log in at console.apify.com
- Open TikTok Scraper and go to the Input tab
- Add usernames to
profilesor full URLs topostURLs - Set
resultsPerPage/maxItemsand click βΆοΈ Start - Download results as JSON, CSV, Excel, or XML. Or pull them via the API
πΌ Business use cases
| π Competitor & trend tracking | π€ Influencer vetting |
|---|---|
Track a list of competitor accounts, spot which videos are outperforming via viralityScore, and export weekly to your BI tool. | Pull a creator's recent videos with scrapeAdditionalAuthorMeta on to check real engagement rate against follower count before a sponsorship deal. |
| ποΈ Content strategy | βοΈ Compliance / ad-disclosure audits |
|---|---|
Use postedDayOfWeek / postedHourUTC across your top-performing videos to find the best posting windows for your niche. | Use isSponsoredContent and sponsorSignals to flag videos that look sponsored but may be missing proper disclosure. |
π Integrate with any app
Pull results via the Apify API, or connect to Make, Zapier, Google Sheets, Airbyte, n8n, or any webhook-based tool from the Apify Console Integrations tab. Schedule recurring runs with Apify's built-in Scheduler.
curl "https://api.apify.com/v2/acts/RecordsData~tiktok-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{ "profiles": ["tiktok"], "maxItems": 10 }'
π° Cost
| Plan | What you get |
|---|---|
| π Free | Up to 10 items per run (preview) |
| π³ Paid | Up to 1,000,000 items per run, billed on Apify usage (compute + residential proxy) |
Cost scales mainly with how many profiles/videos you visit, not raw item
count. Set resultsPerPage higher to pull more videos per profile visit
and get a better cost-per-item.
β Frequently Asked Questions
Does this work without a proxy?
No. TikTok blocks datacenter IPs at scale. RESIDENTIAL proxy is the
default and required for reliable results.
Why did a profile return 0 items? TikTok's anti-bot defenses are inconsistent; the Actor retries once automatically. If it still returns nothing, the profile may be private, empty, or temporarily rate-limiting your proxy session. Try again.
Can I scrape any video by URL?
Videos are matched against the author's most recent uploads. Very old
videos may not be found. Use profiles with a higher resultsPerPage
for deep history instead.
Does it download the video file itself?
It returns a direct, watermark-free downloadUrl. The Actor doesn't
download/store the binary video for you.
Is this affiliated with TikTok? No. See disclaimer below.
What counts as a "result" for pricing? Each video record in your output dataset.
Can I filter by date?
Yes, oldestPostDate / newestPostDate.
Does it scrape comments? Not in this version. See roadmap below.
Can I run this on a schedule? Yes, use Apify's built-in Scheduler.
What happens on the free plan? Results are capped at 10 items per run.
πΊοΈ Roadmap
- π¬ Comments
- π Hashtag / keyword search
- π₯ Follower / following lists
- π€ AI video summaries
β οΈ Disclaimer: This is an independent tool, not affiliated with, endorsed by, or sponsored by TikTok. It only collects data that is publicly visible on TikTok's website.
π Need help or want a custom scraper? Contact RecordsData at contact.punkrecordsdata@gmail.com.