Tiktok Scraper
Pricing
$19.99/month + usage
Tiktok Scraper
TikTok Scraper π΅π± extracts videos, captions, hashtags, profile details, views, likes, comments, and engagement data from TikTok. Ideal for trend tracking, competitor research, influencer analysis, and content strategy. Fast, scalable, and built for automated data collection. ππ
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapAPI
Actor stats
0
Bookmarked
2
Total users
0
Monthly active users
13 days ago
Last modified
Categories
Share
Tiktok Scraper
Tiktok Scraper is a production-ready TikTok data scraper that collects profile videos, reposts, hashtag results, and keyword search results at scale β ideal for marketers, developers, data analysts, and researchers. It solves the challenge of reliable, structured TikTok data collection by combining a Playwright- and Apify-powered tiktok web scraper with automatic proxy fallback, robust error handling, and live dataset streaming. As a tiktok scraping tool and tiktok data extractor for content research and trend analysis, it enables automated, repeatable collection of TikTok video metadata for large-scale analysis.
What data / output can you get?
Below are real fields emitted to the Apify dataset. Fields are organized across item types: profile_video, profile_repost, hashtag_search, keyword_search, and error items.
| Data field | Description | Example value |
|---|---|---|
| type | Record type: profile_video, profile_repost, hashtag_search, keyword_search, error | "profile_video" |
| username | TikTok username for profile-based records | "mrbeast" |
| query | Search query for search-based records (keyword or hashtag without #) | "travel" |
| success | Scrape status flag | true |
| error | Error message for failed items | "No input provided. Please provide either startUrls or searchQuery." |
| video.id | Profile video ID (profile_video) | "7330001112223334444" |
| video.url | Canonical video URL (profile_video) | "https://www.tiktok.com/@mrbeast/video/7330001112223334444" |
| video.stats.views | View count (profile_video) | 1234567 |
| repost.id | Reposted video ID (profile_repost) | "7329998887776665555" |
| repost.authorMeta.name | Author username of the reposted item (profile_repost) | "nike" |
| item.id | Video/item ID from search results (hashtag_search, keyword_search) | "7331119995552220000" |
| item.webVideoUrl | Web URL for hashtag result item (hashtag_search) | "https://www.tiktok.com/@user/video/7331119995552220000" |
| item.stats.playCount | Views for keyword search item (keyword_search) | 45210 |
| item.video.duration | Video duration seconds (keyword_search) | 21 |
| item.music.title | Music title (keyword_search) | "Original Sound" |
Notes:
- Hashtag results expose engagement metrics both as top-level fields (e.g., playCount, diggCount) and nested metadata (authorMeta, videoMeta, musicMeta).
- Output is available in the Apify dataset and can be exported to common formats like JSON or CSV from the Apify platform.
Key features
-
π‘οΈ Automatic proxy fallback Intelligent fallback from no proxy to datacenter to residential proxies on blocks (403/429). The built-in ProxyManager handles retries and escalations automatically for reliable scraping.
-
β‘ Live data streaming to dataset Items are pushed to the dataset as soon as theyβre collected. This protects progress and supports real-time processing pipelines.
-
π§© Multi-mode TikTok scraping One actor for multiple tasks: profile videos (profile_video), reposts (profile_repost), hashtag search (hashtag_search), and keyword search (keyword_search). A versatile tiktok scraping bot for diverse workflows.
-
π¦ Bulk input support Provide multiple TikTok profile URLs or usernames and process them in a single run β ideal for a tiktok influencer scraper workflow and batch research.
-
π§ Robust error handling Detailed logging and graceful fallbacks on common failure modes. When TikTok blocks requests, the actor retries with upgraded proxy tiers.
-
π Developer-friendly Python stack Built with Python, Apify SDK, Playwright, aiohttp, and BeautifulSoup β easy to extend or integrate into a tiktok scraper python pipeline.
-
π Structured video metadata extraction Designed as a tiktok video metadata scraper: URLs, titles, timestamps, dimensions, media links, engagement stats, and author/music info are all standardized.
-
π Scrape TikTok without API Uses browser automation and web endpoints to collect public data β no official API access required.
How to use Tiktok Scraper - step by step
-
Sign in to Apify Create or log in to your Apify account to access the actor.
-
Open the βtiktok-scraperβ actor Find βtiktok-scraperβ in the Apify Console and open the actor.
-
Add input data
- For profiles: paste TikTok profile URLs (e.g., https://www.tiktok.com/@username) or plain usernames (e.g., username) into startUrls.
- For search: set searchQuery (e.g., "Ronaldo" or "#travel") and choose searchType as "keyword" or "hashtag".
-
Choose sections to scrape Set profileScrapeSections to ["videos"] and/or ["repost"] if you are scraping profiles.
-
Set limits and proxies Configure maxResults (1β1000). Optionally configure proxyConfiguration. If blocks occur, the actor escalates from no proxy β datacenter β residential automatically.
-
Start the run Click Start. Watch live logs as items are pushed to the dataset. The actor will handle proxy fallback and retries when needed.
-
Review and export results Open the Dataset tab on the run to preview items. Export your results from the Apify dataset to JSON or CSV for downstream analysis.
Pro Tip: Combine profile sections and a search query in the same run to build a comprehensive dataset across profiles and topical searches.
Use cases
| Use case | Description |
|---|---|
| Trend analysis for marketing | Track hashtags and keyword search results to identify emerging content trends using a tiktok trend scraper workflow. |
| Competitor content research | Collect profile videos and reposts from competitors to benchmark formats, engagement, and cadence. |
| Influencer discovery | Use profile video streams and search results as a tiktok influencer scraper to shortlist creators by engagement signals. |
| Campaign performance tracking | Monitor engagement metrics across videos (views, likes, comments, shares) for ongoing campaigns. |
| Academic & social research | Build structured datasets of public TikTok posts for topic analysis and time-series studies. |
| Data engineering pipelines | Automate a tiktok data scraper pipeline with Apify datasets for ingestion into analytics stacks. |
| Content strategy optimization | Analyze video metadata and music usage to refine creative strategy with a tiktok data extractor approach. |
Why choose Tiktok Scraper?
Built for precision, reliability, and automation, this tiktok scraping tool outperforms brittle DIY scripts and manual workflows.
- π‘οΈ Proxy-smart reliability: Automatic fallback from none β datacenter β residential ensures continuity under rate limits and blocks.
- β‘ Real-time saves: Pushes items continuously, minimizing data loss risk on long runs.
- π§© One actor, many modes: Profiles (videos, reposts), hashtag search, and keyword search in a unified pipeline.
- π Python-based: Uses Apify SDK + Playwright + aiohttp for a developer-friendly tiktok scraper python stack.
- π Structured metadata: Output is standardized for analytics β perfect for a tiktok video metadata scraper.
- π Public-only: Targets publicly available pages; no private or authenticated data.
- ποΈ Production-ready: Designed for automation on Apify infrastructure with resilient error handling.
In short: a robust tiktok web scraper with proxy-aware resilience and structured outputs, not a fragile browser extension.
Is it legal / ethical to use Tiktok Scraper?
Yes β when used responsibly. This actor collects data from publicly available TikTok pages without logging in.
Guidelines for compliant use:
- Only collect public content; do not target private or password-protected profiles.
- Respect TikTokβs Terms of Service and applicable laws (e.g., GDPR/CCPA).
- Avoid misuse (e.g., spam); use data for research, analysis, or legitimate business purposes.
- Consult your legal team for edge cases or jurisdiction-specific considerations.
The tool does not access private accounts or require authentication, and itβs designed for ethical, compliant use.
Input parameters & output format
Example input (supports profile scraping, hashtag, and keyword search):
{"startUrls": ["https://www.tiktok.com/@mrbeast","nike"],"profileScrapeSections": ["videos", "repost"],"searchQuery": "travel","searchType": "keyword","maxResults": 50,"proxyConfiguration": {}}
Input fields:
- startUrls (array)
- Description: TikTok profile URLs (e.g., https://www.tiktok.com/@username) or plain usernames. Supports bulk input.
- Default: none
- Required: No
- profileScrapeSections (array of strings; enum: "videos", "repost")
- Description: Sections to scrape from profiles. Choose one or both.
- Default: ["videos"]
- Required: No
- searchQuery (string)
- Description: Search query for hashtag or keyword search. Leave empty to skip search.
- Default: "" (empty string)
- Required: No
- searchType (string; enum: "keyword", "hashtag")
- Description: Choose keyword search or hashtag search.
- Default: "keyword"
- Required: No
- maxResults (integer; 1β1000)
- Description: Maximum number of results per profile/search query.
- Default: 100
- Required: No
- proxyConfiguration (object)
- Description: Proxy settings. By default, none is used; automatic fallback escalates to datacenter and residential on blocks.
- Default: none
- Required: No
Example output (representative items across all record types):
[{"type": "profile_video","username": "mrbeast","video": {"id": "7330001112223334444","url": "https://www.tiktok.com/@mrbeast/video/7330001112223334444","title": "Planting 20,000,000 trees!","description": "We did it! #teamearth","create_time": 1712080000,"duration": 19,"width": 1080,"height": 1920,"cover_url": "https://p16-sign.tiktokcdn.com/cover.jpg","dynamic_cover_url": "https://p16-sign.tiktokcdn.com/dynamic.jpg","play_url": "https://v16-webapp.tiktok.com/video.mp4","download_url": "https://v16-webapp.tiktok.com/video_dl.mp4","author": {"username": "mrbeast","nickname": "MrBeast","avatar": "https://p16-sign.tiktokcdn.com/avatar.jpg","verified": true},"stats": {"views": 1234567,"likes": 98765,"comments": 4321,"shares": 2100},"music": {"title": "Original Sound","author": "mrbeast","duration": "19"}},"success": true},{"type": "profile_repost","username": "nike","repost": {"id": "7329998887776665555","authorMeta.avatar": "https://p16-sign.tiktokcdn.com/avatar_thumb.jpg","authorMeta.name": "nike","authorMeta.nickname": "Nike","authorMeta.verified": true,"text": "Fuel your run. #JustDoIt","diggCount": 1520,"shareCount": 210,"playCount": 45678,"commentCount": 98,"videoMeta.duration": 12,"videoMeta.width": 1080,"videoMeta.height": 1920,"videoMeta.playAddr": "https://v16-webapp.tiktok.com/repost_play.mp4","musicMeta.musicName": "Original Sound","musicMeta.musicAuthor": "nike","createTimeISO": "2024-03-01T10:21:00Z","webVideoUrl": "https://www.tiktok.com/@nike/video/7329998887776665555","privateItem": false,"isAd": false,"stickersOnItem": [],"effectStickers": []},"success": true},{"type": "hashtag_search","query": "travel","item": {"id": "7331119995552220000","text": "Sunrise in Bali π #travel","createTime": 1712101234,"createTimeISO": "2024-04-03T08:00:34Z","isAd": false,"isMuted": false,"authorMeta": {"id": "1234567890","name": "wanderlust","nickName": "Wander Lust","verified": false,"signature": "","bioLink": null,"avatar": "https://p16-sign.tiktokcdn.com/avatar_large.jpg","privateAccount": false,"ttSeller": false,"following": 120,"fans": 10450,"heart": 220000,"video": 314,"digg": 1200},"musicMeta": {"musicName": "Chill Vibes","musicAuthor": "DJ Calm","musicOriginal": false,"musicAlbum": "","playUrl": "https://p16-sign.tiktokcdn.com/music.mp3","coverMediumUrl": "https://p16-sign.tiktokcdn.com/cover_medium.jpg","musicId": "9876543210"},"webVideoUrl": "https://www.tiktok.com/@wanderlust/video/7331119995552220000","mediaUrls": ["https://v16-webapp.tiktok.com/hashtag_play.mp4"],"videoMeta": {"height": 1920,"width": 1080,"duration": 17,"coverUrl": "https://p16-sign.tiktokcdn.com/cover.jpg","originalCoverUrl": "https://p16-sign.tiktokcdn.com/origin_cover.jpg","definition": "720p","format": "mp4","originalDownloadAddr": "https://v16-webapp.tiktok.com/dl.mp4","downloadAddr": "https://v16-webapp.tiktok.com/dl.mp4"},"diggCount": 1200,"shareCount": 145,"playCount": 35210,"collectCount": 30,"commentCount": 88,"mentions": [],"hashtags": [{ "name": "travel" }]},"success": true},{"type": "keyword_search","query": "coffee","item": {"url": "https://www.tiktok.com/@barista/video/7332224445556667777?is_copy_url=1&is_from_webapp=v1","id": "7332224445556667777","desc": "Latte art tutorial β","createTime": "1712105555","video": {"id": "7332224445556667777","height": 1920,"width": 1080,"duration": 21,"ratio": "1080p","cover": "https://p16-sign.tiktokcdn.com/cover.jpg","originCover": "https://p16-sign.tiktokcdn.com/origin_cover.jpg","dynamicCover": "https://p16-sign.tiktokcdn.com/dynamic_cover.jpg","playAddr": "https://v16-webapp.tiktok.com/video.mp4","downloadAddr": "https://v16-webapp.tiktok.com/video_dl.mp4","shareCover": [],"reflowCover": "","bitrate": 0,"encodedType": "","format": "","videoQuality": "","encodeUserTag": "","codecType": "","definition": "","subtitleInfos": [],"zoomCover": {},"volumeInfo": {},"bitrateInfo": []},"author": "barista","music": {"id": "100200300","title": "Jazz Intro","playUrl": "https://p16-sign.tiktokcdn.com/music.mp3","coverLarge": "","coverMedium": "","coverThumb": "","authorName": "CoffeeLab","original": false,"duration": 15,"album": "","scheduleSearchTime": 0},"stats": {"diggCount": 320,"shareCount": 27,"commentCount": 14,"playCount": 5620},"textExtra": [],"duetInfo": { "duetFromId": "0" },"authorStats": {"followerCount": 4032,"followingCount": 120,"heart": 23000,"heartCount": 23000,"videoCount": 210,"diggCount": 800},"isActivityItem": false,"originalItem": false,"officalItem": false,"secret": false,"forFriend": false,"digged": false,"itemCommentStatus": 0,"showNotPass": false,"vl1": false,"takeDown": 0,"itemMute": false,"effectStickers": [],"privateItem": false,"duetEnabled": false,"stitchEnabled": false,"stickersOnItem": [],"isAd": false,"shareEnabled": false,"comments": [],"duetDisplay": 0,"stitchDisplay": 0,"indexEnabled": false,"diversificationLabels": [],"adAuthorization": false,"adLabelVersion": 0,"locationCreated": "","nickname": "","authorId": "","authorSecId": "","avatarThumb": "","downloadSetting": 0,"authorPrivate": false},"success": true},{"type": "error","success": false,"error": "No input provided. Please provide either startUrls or searchQuery."}]
Fields that may be empty or unknown:
- For keyword_search items, several nested fields can be empty strings or defaults when not present in the underlying API responses (e.g., reflowCover, encodedType).
- For repost items, βauthorMeta.β, βvideoMeta.β, and βmusicMeta.*β keys are provided as flat keys inside the repost object (e.g., "authorMeta.name").
FAQ
Do I need to log in to use this tiktok web scraper?
No. The actor works with publicly available TikTok pages and does not require login or cookies. It uses browser automation and web requests to scrape TikTok without API access.
What happens if TikTok blocks my requests?
The actor automatically escalates proxy usage. It starts with no proxy, then switches to a datacenter proxy, and finally to a residential proxy with retries if needed. This proxy fallback is managed by the built-in ProxyManager.
Can I scrape private accounts or protected content?
No. The actor only targets publicly available content. Private or password-protected profiles are not supported.
How many profiles can I process at once?
You can provide multiple profile URLs or usernames in startUrls. The actor processes them in a single run and streams results as theyβre collected.
What types of TikTok data does this tiktok data scraper collect?
It collects profile videos (profile_video), reposts (profile_repost), hashtag search results (hashtag_search), and keyword search results (keyword_search), including structured video metadata, author info, music info, and engagement counts.
How do I choose between keyword and hashtag search?
Set searchQuery to your term and searchType to "keyword" for general search or "hashtag" to target a specific hashtag (you can include or omit the # β itβs normalized).
How fast is it, and what limits should I expect?
Speed depends on maxResults and the number of profiles/queries. The actor streams items continuously, handles retries, and respects blocks by switching proxies to maintain reliability.
Can I integrate this into a tiktok scraper python workflow?
Yes. The actor is implemented in Python using the Apify SDK and Playwright. You can orchestrate runs and fetch datasets with the Apify platform to fit your automation pipeline.
Closing CTA / Final thoughts
Tiktok Scraper is built for reliable, structured extraction of TikTok profile videos, reposts, and search results at scale. With automatic proxy fallback, robust error handling, and live dataset streaming, itβs ideal for marketers, analysts, developers, and researchers who need a dependable tiktok scraping tool. Use it as a tiktok data extractor for trend analysis, a tiktok profile scraper for content benchmarking, or a tiktok hashtag scraper for discovering topical posts β all in one workflow. Developers can automate end-to-end pipelines on Apify with the Python-based stack. Start extracting smarter TikTok insights, reliably and at scale.