A TikTok scraper collects public data from TikTok, including video metadata, profile details, engagement metrics, and comments, without using TikTok’s official API.
We tested Bright Data, Apify, and Decodo by running 500 unique TikTok video URLs per provider. We measured two dimensions: validation success rate and the breadth of available metadata fields.
Best TikTok scrapers: Feature & pricing comparison
- UI: User interface
- Dedicated: Provides a dedicated TikTok scraper API solution specifically designed for collecting data from TikTok.
- General-Purpose: This offers a scraper that is not explicitly designed for TikTok but can be adapted for TikTok web scraping purposes.
- Supports: Pages that return structured data.
TikTok scrapers benchmark results
- Bright Data sits in the most attractive quadrant, with a high success rate (99.6%) and rich metadata (41 fields).
- Decodo returns the most metadata fields (48) but at a lower success rate (94.6%).
- Apify achieves near-identical reliability (99%) with fewer fields (27). Best suited for teams that prioritize uptime over metadata depth.
See our methodology for validation criteria and success rate definitions.
TikTok scrapers review in detail
Bright Data leads on both dimensions in our benchmark. Its dedicated TikTok Scraper API returned 41 structured fields per video, including engagement metrics, video URL, and carousel image data.
Bright Data’s TikTok Scraper API provides three dedicated endpoints for collecting structured TikTok data at scale:
- Profile endpoint: Collect profile data including nickname, biography, is_verified, followers, following, videos_count, likes, and engagement metrics such as awg_engagement_rate, comment_engagement_rate, and like_engagement_rate. Supports two input methods: direct profile URL or discovery via TikTok search URL (filterable by country).
- Posts endpoint: Extract detailed post-level data including description, hashtags, play_count, share_count, collect_count, comment_count, video_duration, video_url, music, and carousel_images, alongside the creator’s profile details. Supports four input methods: direct post URL, by profile URL (with date range and post-count filtering), by keyword or hashtag, and by TikTok discover URL.
- Comments endpoint: Retrieve per-comment data including comment_text, num_likes, num_replies, comment_id, and full commenter details (commenter_user_name, commenter_id, commenter_url), tied back to the source post via post_url, post_id, and post_date_created.
Get 25% off Bright Data’s TikTok Scraping APIs by entering the promo code API25.
Visit WebsiteDecodo offers a TikTok post scraper that collects comment threads and search results by country or keyword. The tool returned the highest number of metadata fields (48) in our benchmark, more than either Bright Data or Apify. However, its validation success rate of 94.6% means roughly 1 in 18 requests returns incomplete or inaccurate data. This gap matters at scale: across 10,000 requests, approximately 540 would fail validation.
Save 30% with code: SCRAPE30Apify provides flexible input options for TikTok scraping, including hashtags, profile URLs, keywords, and search URLs. The tool delivers 99% reliability with only 27 fields, though comment-level data is less structured.
- Automatically handles dynamic JavaScript loading and pagination.
- Allows retrieval of engagement metrics, hashtags, and music IDs.
- Works with Python, Node.js, or cURL, supporting multi-language integration.
Nimble’s web scraping API offers proxy rotation and fingerprint evasion, improving the reliability of TikTok scraping. While not TikTok-exclusive, its residential proxy network and anti-bot bypass logic make it a strong choice for accessing public TikTok endpoints from different regions.
Octoparse offers multiple pre-built TikTok scraper templates for collecting post, profile, and comment data directly from TikTok’s public pages.
Unlike API-based tools such as Bright Data or Apify, Octoparse utilizes visual automation that replicates real user interactions through its browser emulator. Each template supports configuration for:
- Batch input (up to 10,000 TikTok URLs)
- Custom page size (50–200 results)
- Export options (Excel, CSV, JSON, or Google Sheets)
- Pricing tiers (Free: $0.4/1,000 lines – $2/1,000 lines for detailed video metadata)
How to Scrape TikTok Videos with Python
If you prefer coding your own TikTok data scraper instead of using no-code tools, Python gives you complete control over what data you collect and how you process it. In this tutorial, you’ll learn how to scrape TikTok data such as usernames, captions, and engagement metrics using Python libraries.
Note: Always comply with TikTok’s robots.txt3 and Terms of Service when collecting public data.
This TikTok scraping tutorial shows you how to scrape TikTok profile data using Bright Data TikTok scraper to extract detailed post information.
Step 1: Set up Your Python TikTok scraper
To start TikTok scraping with Python, you first need to import the required libraries and configure your API credentials. This setup step prepares your environment for running a TikTok scraper or any other TikTok scraper script.
In this step, you’re importing essential Python packages used for sending HTTP requests, handling JSON responses, and managing data with Pandas. These libraries form the base of any Python TikTok scraper.
The script needs your API token and TikTok dataset ID to authenticate and connect to the platform. You can find both values inside your API dashboard under the TikTok scraper section.
Set the profile URL you want to analyze. This example utilizes a single TikTok profile scraper URL; however, you can easily modify it to include multiple competitor profiles for large-scale TikTok data scraping.
Step 2: Trigger TikTok Scraping with the scraper API
This step activates the TikTok scraping job and begins retrieving the data from your selected profiles.
Here, you’re making a POST request to Bright Data’s trigger endpoint using your API token and TikTok dataset ID. This API call tells your custom TikTok scraper to start scraping the specified TikTok profile URL.
Once the request is successful, the scraper returns a snapshot_id, which uniquely identifies this TikTok scraper job. You’ll use this ID in the next step to check the scraping status and retrieve the collected TikTok data.
If the request fails, the script exits safely with an error message. This ensures that your Python TikTok scraper stops running if authentication or endpoint issues occur.
Step 3: Retrieve & save the scraped TikTok data
Once the scraping job is complete, it’s time to retrieve your TikTok data and export it for analysis. The following Python script waits for Bright Data’s API to finish processing, then downloads and saves the results into a structured dataset.
The code below checks the snapshot status from the API. It repeatedly polls the endpoint until the scraping process is complete, then retrieves the data file and saves it locally.
This section of your TikTok scraper Python script uses a polling loop to repeatedly check the TikTok Scraper API until your dataset is ready.
Here’s how it works:
- Polling with timeout: The scraper checks for completion every 10 seconds with a 15-minute cap.
- Data retrieval: Once the API status returns “ready” or “done”, the script downloads the data for your TikTok post.
- NDJSON parsing: Each record is processed line by line into Python dictionaries.
- Data organization: The code extracts post IDs, engagement metrics (likes, comments, shares, plays), hashtags, and descriptions.
- Export: The data is structured into a Pandas DataFrame and saved as tiktok_competitor_analysis.csv.
- Error handling: Try-except blocks catch exceptions when unexpected or missing fields are encountered.
Is it legal? Understanding TikTok’s scraping rules
It is usually legal to scrape public data, such as hashtags or view counts, for research, as long as you do not bypass login screens or access private information.
- US data rules: The USDS framework protects U.S. user data and prohibits sending it to servers outside the U.S. that lack compliance standards.
- Music restrictions: After a 2026 dispute with Universal Music Group (UMG), it has become harder to access music metadata, and many audio fields are now empty.
1. TikTok terms of service and scraping restrictions
TikTok’s Terms of Service explicitly prohibit automated access or scraping of non-public content.4 This includes:
- Logging in programmatically to view private or restricted accounts
- Circumventing CAPTCHA or authentication mechanisms
- Copying or redistributing TikTok’s code or media assets
However, collecting publicly visible metadata (like usernames, captions, like counts, and hashtags) for research or analytics is legal if done respectfully and without disruption.
2. TikTok robots.txt and crawling policy
The robots.txt file is a small text document that tells TikTok crawlers which parts of the website they can or cannot access. TikTok’s robots.txt includes disallow rules for paths such as /login, /ads, and other internal endpoints. A responsible TikTok data scraper should:
- Check robots.txt before crawling
- Respect rate limits (introduce delays between requests)
- Avoid restricted endpoints listed under Disallow
- Use APIs or browser-based renderers that fetch content exactly as a regular user would
3. Scraping TikTok data / What’s allowed and what’s not
Allowed:
- Gathering public metadata (captions, usernames, view counts, hashtags)
- Analyzing aggregated trends (without re-publishing individual videos)
- Using data for market research or AI model training with anonymization
Not Allowed:
- Accessing private user data, DMs, or login-only endpoints
- Scraping for commercial resale or content republishing
- Circumventing security layers or rate-limit enforcement
What data can you scrape from TikTok videos?
Note: Music metadata fields (music_title, artist_name) may return empty values in 2026 following TikTok’s dispute with Universal Music Group.
TikTok scraper benchmark methodology
We benchmarked web data scrapers to evaluate their ability to scrape TikTok video data. We executed 500 video URL’s per provider, with each video tested once.
- Dataset: We used a curated list of 500 TikTok video URLs spanning diverse content categories and engagement levels.
- Target: Each provider scraped individual video metadata, including descriptions, creation times, video durations, comment counts, and other engagement metrics.
- Runs: We performed 1 run per video.
Success rates:
We defined three levels of success:
Submission success: We considered a submission successful if the API accepted our initial request (HTTP 200/202) without authentication or rate limit errors.
Execution success: We considered an execution successful if the scraping job completed without timeout or system errors.
Validation success: We applied a set of rules to ensure data quality and usability. We considered a result VALID only if it met at least 60% of the validation criteria below, with at least 3 of 5 criteria passing.
A trial that fails at any earlier stage cannot proceed to later stages and is recorded as a failed trial in the final validation calculation. For example, if a request fails during submission, it receives a validation score of 0. The final validation success rate includes all trials across all stages.
Validation Criteria
We validated five key fields to ensure data accuracy and completeness:
1. URL validation
- Video ID must match exactly between the requested and scraped URLs
- Example: Extract 7557884684533910815 from both URLs and verify match
2. Description validation
- At least 3 common words are required between the ground truth and scraped text
- Skipped if ground truth has fewer than 3 words
- Method: Tokenize (lowercase, alphanumeric only) and count matches
3. Create time validation
- Within ±2 minutes OR ±24 hours
- Accounts for timing discrepancies and timezone differences
4. Video duration validation
- Within ±2 seconds tolerance
- Tight tolerance suitable for TikTok’s typical 15-180 second videos
5. Comment count validation
- Logarithmic + 5% tolerance: max(count × 0.05, log₁₀(count + 1) × 5, 3)
- Wider tolerance for small counts (≤100), tighter for large counts (>100)
- Examples: 2 → [0, 5] | 100 → [90, 110] | 1000 → [950, 1050]
A result is VALID if at least 3 out of 5 non-null criteria pass (60% threshold). Criteria are skipped only when the ground truth is null. If ground truth exists for a criterion but the scraped value is null, that criterion is marked as failed and counted in the validation calculation.
A video scrape result is considered VALID if:
- At least 3 out of 5 criteria pass, OR
- At least 60% of non-null criteria pass
This approach accounts for cases where certain fields may be legitimately unavailable while still requiring majority accuracy across available data points.
Broken URL detection
We automatically skipped videos with broken or unavailable URLs. Detection included:
- HTTP 404 errors
- “Video not found” or “Video removed” messages
- “Video unavailable” or “Content removed” errors
- TikTok-specific errors (e.g., “aweme not found”)
However, there were no broken URLs in our dataset, so we did not need to exclude any videos.
Available metadata
We counted the number of structured data fields returned by each provider, including:
- Core fields: video ID, description, create time, duration, comment count
- Engagement metrics: likes, shares, views, play count
- Author information: username, nickname, follower count
- Additional metadata: hashtags, music info, video quality, captions
FAQs
TikTok scraping enables users to collect public TikTok data, including comments, hashtags, and other video details, to analyze trends and audience behavior.
You can use these insights to track hashtag performance, measure influencer engagement, and identify viral content for marketing strategy.
Yes, but only partially. TikTok’s robots.txt file explicitly disallows automated crawlers from accessing specific paths, including/ads/, /login/, and /share/. This means that traditional bots or simple HTTP scrapers should not crawl those sections.
However, public TikTok videos and profile pages are still viewable by normal users and may be loaded dynamically through JavaScript (XHR calls).
Yes. You can build your custom TikTok data scraper in Python to collect publicly available TikTok data. The key is to mimic natural browsing behavior (delays, scrolling, dynamic loading) and to avoid prohibited endpoints.
Cite this benchmark
Pick the format that matches where you're publishing. Pasting the link version into your CMS preserves the backlink.
@misc{dogan2026,
author = {Dogan, Sedat and Karatas, Gulbahar},
title = {{Best TikTok Scrapers: Scrape Video & Profile Data}},
year = {2026},
month = jun,
howpublished = {\url{https://aimultiple.com/tiktok-scraping}},
note = {AIMultiple. Retrieved June 26, 2026}
}Reference Links
- Has 20 years of experience as a white-hat hacker and development guru, with extensive expertise in programming languages and server architectures.
- Is an advisor to C-level executives and board members of corporations with high-traffic and mission-critical technology operations like payment infrastructure.
- Has extensive business acumen alongside his technical expertise.
Be the first to comment
Your email address will not be published. All fields are required. Comments are left in their original language.