TikTok VideoScraper
Pricing
from $3.00 / 1,000 results
TikTok VideoScraper
TikTok VideoScraper — full public stats and metadata for a list of TikTok video/photo URLs: views, likes, comments, shares, saves, author info, music. Bulk-friendly.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Sasha Ebashu
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Video Scraper
What does TikTok Video Scraper do?
TikTok Video Scraper extracts the full public stats and metadata of TikTok posts from a list of links — no API key or login. It's built for bulk runs and for minimum errors: a fast HTTP path with an automatic headless-browser fallback when TikTok throws up its anti-bot wall.
For every post it returns:
- ▶️ playCount (views), 👍 diggCount (likes), 💬 commentCount
- 🔁 shareCount + repostCount, ⭐ collectCount (saves)
- 👤 authorMeta — username, nickname, id, verified, signature, avatar,
followers (
fans), total likes (heart), video count - 🎵 musicMeta — title, author, original flag, cover, music id
- 🎬 videoMeta — duration, width/height, cover, definition, format
- 📝 caption (
text), language,createTimeISO,locationCreated, hashtags, mentions,isSlideshow,isPinned,isSponsored
Unlike many platforms, TikTok exposes shares and saves publicly, so this scraper returns the most complete metric set of the bunch.
How to use it
- Click Start
- Paste your TikTok links into the TikTok URLs field — one per line, or a whole blob separated by spaces/commas/new lines (split automatically). You can also upload a file or link a Google Sheet.
- Click Run
- Download your data from the Output tab (JSON, CSV, Excel)
Supported URL formats:
https://www.tiktok.com/@user/video/<id>— videoshttps://www.tiktok.com/@user/photo/<id>— photo posts / slideshowshttps://vt.tiktok.com/<code>,https://vm.tiktok.com/<code>,tiktok.com/t/<code>— short links (resolved automatically)
Duplicate URLs are removed automatically.
How it works (minimum errors)
- Fast HTTP phase — fetches the post page and reads the embedded
__UNIVERSAL_DATA_FOR_REHYDRATION__JSON. Cheap and quick. - Browser fallback — any URL that TikTok blocks or that fails to parse is retried with a real headless browser (Playwright), which renders the page like a normal visitor.
TikTok aggressively blocks datacenter IPs, so Residential proxy (country US) is enabled by default. Avoid country RU (TikTok is restricted there).
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
| urls | array | TikTok URLs, bulk paste (one per line or a separated blob) | — |
| startUrls | array | Alternative bulk input: list / file / Google Sheet | — |
| maxItems | integer | Max posts per run (1–20000) | 1000 |
| maxConcurrency | integer | Parallel requests (5–10 is a good balance) | 8 |
| proxyConfiguration | object | Proxy settings | Residential US |
Output
One JSON object per input URL. Successful posts return the full object below; unavailable posts return a compact error object.
Success (excerpt)
{"id": "7626822742666677525","text": "…","createTimeISO": "2026-04-09T18:07:37.000Z","locationCreated": "DE","authorMeta": { "name": "nutaxoxo1", "nickName": "NutaXoXo", "fans": 2000000, "heart": 94400000, "verified": false },"musicMeta": { "musicName": "оригинальный звук", "musicOriginal": true },"videoMeta": { "duration": 105, "width": 576, "height": 1022, "definition": "540p" },"diggCount": 30300,"shareCount": 1876,"playCount": 399800,"collectCount": 2444,"commentCount": 163,"repostCount": 0,"hashtags": [],"mentions": [],"webVideoUrl": "https://www.tiktok.com/@nutaxoxo1/video/7626822742666677525","submittedVideoUrl": "https://vt.tiktok.com/ZSHx2YkRS"}
Error
{"error": "Post not found or private.","errorCode": "POST_NOT_FOUND_OR_PRIVATE","url": "https://vt.tiktok.com/ZSHgPeJEG"}
Error codes: POST_NOT_FOUND_OR_PRIVATE (deleted, private or unavailable),
INVALID_URL (not a recognisable TikTok link).
Billing: error items are written to a separate ERRORS dataset (Storage → Datasets → ERRORS), not the main output dataset — so you are not charged for not-found / private / invalid URLs. Only successful posts land in the default (billable) dataset.
Notes
- Built with the Apify SDK + got-scraping (HTTP) + Crawlee/Playwright (fallback).
- Only public data is collected — do not scrape personal data without a legitimate reason.
- Endpoints and extraction are documented in ./RESEARCH.md.