Tiktok Data Extractor Scraper
Pricing
$19.99/month + usage
Tiktok Data Extractor Scraper
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
ScrapAPI
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
TikTok Data Extractor Scraper โ All-in-One TikTok Scraping Solution
Extract TikTok data from hashtags, profiles, and videos in one powerful actor. Built by combining three specialized scrapers into a unified tool with advanced filtering, sorting, and automatic proxy management.
๐ฏ What is TikTok Data Extractor Scraper?
The TikTok Data Extractor Scraper is a comprehensive Apify Actor that combines the power of three specialized TikTok scrapers into one unified solution:
- #๏ธโฃ Hashtag Scraper โ Extract videos from trending or specific hashtags
- ๐ Profile Scraper โ Monitor user profiles with advanced filtering and sorting
- ๐ Video URL Scraper โ Extract data from individual TikTok videos
Whether you're tracking viral trends, analyzing competitor profiles, or extracting specific video metrics, this actor provides a reliable, scalable solution with built-in anti-blocking mechanisms and intelligent proxy fallback.
โจ Key Features
Unified Multi-Source Scraping
Unlike single-purpose scrapers, this actor handles three different TikTok data sources seamlessly:
- Hashtag Scraping: Extract videos from trending or specific hashtags with adaptive scrolling
- Profile Scraping: Monitor user profiles with advanced filtering, sorting, and date range options
- Direct Video URLs: Extract data from individual TikTok videos by URL
- Keyword Search: Search TikTok for keywords and automatically scrape discovered videos
- Related Videos: Optionally collect related videos for each input video URL
Advanced Profile Filtering & Sorting
- Date Range Filtering: Filter videos by publication date (absolute dates or relative days)
- Sorting Options: Sort by latest, oldest, or popularity
- Pinned Post Exclusion: Option to exclude pinned posts from profile scraping
- Section Selection: Choose to scrape videos, reposts, or both
- Hearts Filtering: Filter by minimum/maximum likes (hearts)
- Follower/Following Filters: Filter by author's follower or following count
Intelligent Proxy Management
Our actor implements a sophisticated three-tier proxy fallback system:
- No Proxy (default): Starts with direct connections for maximum speed
- Automatic Datacenter Fallback: Switches to datacenter proxies when blocked
- Residential Proxy Fallback: Upgrades to residential proxies with retries for maximum success rate
The actor automatically detects blocks (403/429 errors) and empty responses, seamlessly switching proxy types without manual intervention.
Comprehensive Data Extraction
Each scraped video includes:
- Author Information: Username, avatar, follower count, verification status, bio
- Video Metrics: Likes, views, shares, comments, reposts
- Video Details: Duration, dimensions, quality, format, cover URLs
- Music Information: Track name, artist, original status, play URL
- Metadata: Creation date, web URL, description, hashtags, mentions
- Location Data: Location name, address, city, country code (when available)
- Subtitle Links: Available subtitle languages and download links
- Source Tracking: Each item is tagged with source type and input identifier
๐ฅ Input Configuration
Basic Input Fields
#๏ธโฃ Videos with this hashtag (Optional Array)
Add one or more TikTok hashtags (without the # symbol) to scrape videos containing those hashtags.
Example:
{"hashtags": ["travel", "fitness", "cooking"]}
๐ Profiles (Optional Array)
Add TikTok usernames or profile URLs to scrape their profile videos. The actor automatically extracts usernames from URLs if provided.
Example:
{"profiles": ["tiktok", "https://www.tiktok.com/@charlidamelio"]}
๐ Video URLs (Optional Array)
Add direct TikTok video URLs to extract specific video data.
Example:
{"postURLs": ["https://www.tiktok.com/@username/video/1234567890","https://www.tiktok.com/@user2/video/0987654321"]}
๐ Search keywords (Optional Array)
Search TikTok for these keywords, collect found video URLs, and then scrape them just like Video URLs.
Example:
{"keywords": ["mrbeast new", "cooking tips"]}
๐ฏ Number of videos per hashtag, profile, search, or related (Integer, Default: 50)
Number of videos to scrape per hashtag or profile. Also used as: max video results per keyword search and max related videos per input video URL. Range: 1 to 1,000,000.
Profile Options (Under Profile Accordion)
Profile sections to scrape (Array, Default: ["videos"])
Choose which sections to scrape: "videos" for regular profile videos or "reposts" for reposted content.
Profile video sorting (String, Default: "latest")
Sort profile videos by:
"latest"โ Most recent videos first"oldest"โ Oldest videos first"popular"โ Most popular videos first (by views)
Note: Date filters only work with "latest" and "oldest" sorting.
Scrape profile videos published after [date] (String, Optional)
Filter videos published after a specific date. Use the datepicker:
- Absolute tab: Specific date in
YYYY-MM-DDformat - Relative tab: Number of days ago (e.g.,
7for last 7 days)
Scrape videos published before [date] (String, Optional)
Filter videos published before a specific date. Use the datepicker:
- Absolute tab: Specific date in
YYYY-MM-DDformat - Relative tab: Number of days ago (e.g.,
0for today)
Exclude pinned posts (Boolean, Default: false)
Set to true to exclude pinned posts from profile scraping.
Video URL Options (Under Video URLs Accordion)
Include related videos for each URL (Boolean, Default: false)
If enabled, for every provided video URL the actor will also collect 'related' videos visible on the page (up to the Number of videos setting).
Network Options (Under Network Accordion)
Proxy Configuration (Object, Optional)
Configure proxy settings. By default, the actor starts without a proxy and automatically falls back to datacenter, then residential proxies if needed.
Complete Input Example
{"hashtags": ["travel", "adventure"],"profiles": ["travelblogger", "https://www.tiktok.com/@wanderlust"],"postURLs": ["https://www.tiktok.com/@user/video/1234567890"],"keywords": ["travel tips"],"resultsPerPage": 100,"profileScrapeSections": ["videos"],"profileSorting": "latest","oldestPostDateUnified": "2025-04-04","newestPostDate": "2025-09-09","excludePinnedPosts": false,"scrapeRelatedVideos": true,"proxyConfiguration": {"useApifyProxy": false}}
๐ค Output Format
The actor saves data in real-time, grouping items by source type. Important: Each source type maintains its original scraper's output structure for compatibility.
Output Structure by Source Type
Hashtag Items (Nested Structure)
Hashtag items maintain a nested structure matching the original hashtag scraper format:
{"id": "7234567890123456789","sourceType": "hashtag","hashtag": "travel","text": "Video description text","textLanguage": "en","createTime": 1705312200,"createTimeISO": "2024-01-15T10:30:00.000Z","isAd": false,"authorMeta": {"id": "123456789","name": "username","profileUrl": "https://www.tiktok.com/@username","nickName": "Display Name","verified": false,"signature": "Bio text","avatar": "https://...","originalAvatarUrl": "https://...","following": 100,"friends": 50,"fans": 10000,"heart": 50000,"video": 200,"digg": 100000},"musicMeta": {"musicName": "Song Title","musicAuthor": "Artist Name","musicOriginal": false,"playUrl": "https://...","coverMediumUrl": "https://...","musicId": "67890"},"videoMeta": {"height": 1920,"width": 1080,"duration": 30,"coverUrl": "https://...","originalCoverUrl": "https://...","definition": "720p","format": "mp4","subtitleLinks": []},"diggCount": 15000,"shareCount": 500,"playCount": 100000,"collectCount": 200,"commentCount": 1200,"repostCount": 50,"mentions": [],"detailedMentions": [],"hashtags": [{"name": "travel"}, {"name": "adventure"}],"effectStickers": [],"isSlideshow": false,"isPinned": false,"isSponsored": false,"webVideoUrl": "https://www.tiktok.com/@username/video/1234567890","mediaUrls": [],"commentsDatasetUrl": null}
Profile Items (Nested Structure - Matches Tiktok-Profile-Scraper)
Profile items use a nested structure matching Tiktok-Profile-Scraper exactly:
{"id": "7234567890123456789","sourceType": "profile","profile": "username","text": "Video description text","textLanguage": "en","createTime": 1705312200,"createTimeISO": "2024-01-15T10:30:00.000Z","isAd": false,"authorMeta": {"id": "123456789","name": "username","profileUrl": "https://www.tiktok.com/@username","nickName": "Display Name","verified": false,"signature": "Bio text","bioLink": null,"avatar": "https://...","originalAvatarUrl": "https://...","commerceUserInfo": {"commerceUser": false},"privateAccount": false,"roomId": "","ttSeller": false,"followDatasetUrl": null,"following": 100,"friends": 50,"fans": 10000,"heart": 50000,"video": 200,"digg": 100000},"musicMeta": {"musicName": "Song Title","musicAuthor": "Artist Name","musicOriginal": false,"playUrl": "https://...","coverMediumUrl": "https://...","originalCoverMediumUrl": "https://...","musicId": "67890"},"locationMeta": {"address": "","city": "","cityCode": "","countryCode": "","locationName": "","locationId": ""},"webVideoUrl": "https://www.tiktok.com/@username/video/1234567890","mediaUrls": [],"commentsDatasetUrl": null,"videoMeta": {"height": 1920,"width": 1080,"duration": 30,"coverUrl": "https://...","originalCoverUrl": "https://...","definition": "720p","format": "mp4","subtitleLinks": []},"diggCount": 15000,"shareCount": 500,"playCount": 100000,"collectCount": 200,"commentCount": 1200,"repostCount": 50,"mentions": [],"detailedMentions": [],"hashtags": [{"name": "travel"}],"effectStickers": [],"isSlideshow": false,"isPinned": false,"isSponsored": false,"input": "username","fromProfileSection": "videos"}
Video URL Items (Nested Structure - Matches Tiktok-Video-Scraper)
Video URL items use a nested structure matching Tiktok-Video-Scraper exactly:
{"id": "7234567890123456789","sourceType": "video_url","videoUrl": "https://www.tiktok.com/@username/video/1234567890","text": "Video description text","textLanguage": "en","createTime": 1705312200,"createTimeISO": "2024-01-15T10:30:00.000Z","locationCreated": "","isAd": false,"authorMeta": {"id": "123456789","name": "username","profileUrl": "https://www.tiktok.com/@username","nickName": "Display Name","verified": false,"signature": "Bio text","bioLink": null,"avatar": "https://...","originalAvatarUrl": "https://...","privateAccount": false,"roomId": "","ttSeller": false,"followDatasetUrl": null,"following": 100,"friends": 50,"fans": 10000,"heart": 50000,"video": 200,"digg": 100000},"musicMeta": {"musicName": "Song Title","musicAuthor": "Artist Name","musicOriginal": false,"playUrl": "https://...","coverMediumUrl": "https://...","originalCoverMediumUrl": "https://...","musicId": "67890"},"webVideoUrl": "https://www.tiktok.com/@username/video/1234567890","submittedVideoUrl": "https://www.tiktok.com/@username/video/1234567890","mediaUrls": [],"commentsDatasetUrl": null,"videoMeta": {"height": 1920,"width": 1080,"duration": 30,"coverUrl": "https://...","originalCoverUrl": "https://...","definition": "720p","format": "mp4","subtitleLinks": []},"diggCount": 15000,"shareCount": 500,"playCount": 100000,"collectCount": 200,"commentCount": 1200,"repostCount": 50,"mentions": [],"detailedMentions": [],"hashtags": [{"name": "travel"}],"effectStickers": [],"isSlideshow": false,"isPinned": false,"isSponsored": false}
Source Identification Fields
All items include these fields for grouping and filtering:
sourceType:"hashtag","profile","video_url", or"video_related"(for related videos)hashtag: The hashtag name (for hashtag items only)profile: The username (for profile items only)videoUrl: The input URL (for video URL items only)
๐ฌ How to Use the Actor
Step 1: Access the Actor
- Log in to your Apify account at console.apify.com
- Navigate to the Actors section
- Find TikTok Data Extractor Scraper in your actor list
Step 2: Configure Input
- Click on the actor to open it
- In the INPUT tab, configure your scraping parameters:
- Add hashtags, profiles, video URLs, or keywords
- Set the number of results per source
- Configure advanced options (sorting, filters, etc.) under the Profile accordion
- Enable related videos under the Video URLs accordion
- Adjust proxy settings under the Network accordion
Step 3: Run the Actor
- Click the Start button to begin scraping
- Monitor progress in real-time via the Log tab
- Watch as data appears in the dataset table as each input is processed
- Monitor proxy fallback notifications if blocks occur
Step 4: Access Results
- Navigate to the Dataset tab to see results in real-time
- Use the
sourceType,hashtag,profile, andvideoUrlfields to filter by input type - Preview results in the table view
- Export data as JSON, CSV, Excel, or XML
- Download or integrate via API
๐ก Best Use Cases
1. Social Media Marketing
- Competitor Analysis: Monitor competitor profiles and track their content strategy
- Hashtag Research: Identify trending hashtags and analyze engagement patterns
- Influencer Discovery: Find popular creators in specific niches
- Campaign Tracking: Monitor branded hashtag performance
- Keyword Monitoring: Track videos related to specific search terms
2. Market Research
- Trend Analysis: Track emerging trends and viral content patterns
- Audience Insights: Analyze what content resonates with target demographics
- Content Strategy: Study successful video formats and topics
- Industry Monitoring: Keep track of industry-specific content
3. Data Analytics
- Performance Metrics: Collect engagement data for statistical analysis
- Time-Series Analysis: Track video performance over time
- Comparative Studies: Compare performance across different creators or hashtags
- Academic Research: Gather data for social media studies
4. Content Curation
- Content Discovery: Find high-quality videos for curation
- Playlist Creation: Build collections based on specific criteria
- Content Aggregation: Gather videos for newsletters or websites
- Related Content: Discover related videos for content recommendations
โ Frequently Asked Questions
How does the proxy fallback work?
The actor starts without a proxy for maximum speed. If TikTok blocks the request (403/429 errors) or returns empty responses, it automatically switches to datacenter proxies. If datacenter proxies fail, it upgrades to residential proxies and retries up to 3 times. Once fallback occurs, it sticks with the residential proxy for all remaining requests.
How does sequential processing work?
The actor processes inputs one at a time: first all hashtags (completing and saving each before moving to the next), then all profiles, then all video URLs. Data is saved to the dataset in real-time as each input is processed, so you can see results appear incrementally.
Can I scrape private profiles?
No, this actor only scrapes publicly available content. Private profiles and password-protected content cannot be accessed.
What's the maximum number of videos I can scrape?
The resultsPerPage field supports values from 1 to 1,000,000. However, practical limits depend on TikTok's rate limiting and the profile/hashtag size. For very large profiles, consider using date filters to break the scraping into smaller batches.
How accurate is the data?
The actor extracts data directly from TikTok's web interface and API responses, ensuring high accuracy. All metrics (likes, views, comments) reflect the values at the time of scraping.
Can I scrape reposts?
Yes, if a profile has reposted videos, you can access them by including "reposts" in the profileScrapeSections array. Note that not all profiles have reposts, and availability depends on TikTok's interface.
Do date filters work with all sorting options?
Date filters work best with "latest" and "oldest" sorting. When using "popular" sorting, date filters may have limited effectiveness as popularity-based sorting prioritizes engagement metrics over chronological order.
How does keyword search work?
The keyword search feature uses TikTok's search functionality to discover video URLs matching your keywords. These URLs are then scraped just like manually provided video URLs. The number of results per keyword is controlled by the resultsPerPage setting.
What are related videos?
Related videos are videos that TikTok shows as "related" or "recommended" on a video's page. When you enable scrapeRelatedVideos, the actor will collect these related videos for each input video URL, up to the resultsPerPage limit.
How long does scraping take?
Scraping time depends on the number of sources, results per page setting, TikTok's response times, and proxy usage. Typically, scraping 100 videos takes 2-5 minutes, but this can vary significantly. Since processing is sequential, total time is the sum of all individual task times.
What happens if a profile or hashtag doesn't exist?
The actor will log a warning and continue with other sources. Failed sources won't stop the entire scraping process.
Why do different source types have different output structures?
The actor maintains the original output structure from each source type's specialized scraper for maximum compatibility:
- Hashtag items: Nested structure (matches hashtag scraper)
- Profile items: Nested structure matching Tiktok-Profile-Scraper exactly
- Video URL items: Nested structure matching Tiktok-Video-Scraper exactly
This ensures existing workflows and integrations continue to work seamlessly.
Can I use this for commercial purposes?
Yes, but ensure you comply with TikTok's Terms of Service, data protection regulations (GDPR, CCPA, etc.), local laws regarding data scraping, and copyright and privacy laws. Always respect creators' rights and use data responsibly.
โ ๏ธ Important Notes
Legal Compliance
- This actor scrapes only publicly available data from TikTok
- Users are responsible for ensuring compliance with TikTok's Terms of Service
- Respect privacy laws and data protection regulations
- Do not use scraped data for spam, harassment, or illegal activities
Rate Limiting
TikTok implements rate limiting to prevent abuse. The actor includes automatic retry logic with exponential backoff, intelligent proxy rotation, and request delays to avoid overwhelming servers.
Data Accuracy
Metrics are accurate at the time of scraping. Video counts may change after scraping, and some data may be unavailable for certain videos.
Technical Limitations
TikTok's interface changes may require actor updates. Some features depend on TikTok's API availability, and very large scraping jobs may take significant time due to sequential processing.
๐ ๏ธ Support and Customization
For custom solutions, feature requests, or technical support, contact us at dev.scraperengine@gmail.com.
We can help with custom data extraction requirements, integration with your existing systems, bulk scraping operations, performance optimization, and feature development.
๐ Performance Tips
- Use Date Filters: Narrow down date ranges to reduce scraping time
- Batch Processing: Break large jobs into smaller batches
- Monitor Logs: Watch for proxy fallback events to optimize settings
- Start Small: Test with small
resultsPerPagevalues before scaling up - Use Specific Hashtags: More specific hashtags often return faster results
- Sequential Processing: Remember that inputs are processed one at a time, so plan accordingly for large batches
- Keyword Search: Use keywords to discover videos when you don't have specific URLs
- Related Videos: Enable related videos to discover content similar to your input videos
Ready to extract TikTok data at scale? Configure your inputs and start scraping today! ๐