Tiktok Scraper avatar

Tiktok Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Tiktok Scraper

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

ScrapAPI

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

13 days ago

Last modified

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 fieldDescriptionExample value
typeRecord type: profile_video, profile_repost, hashtag_search, keyword_search, error"profile_video"
usernameTikTok username for profile-based records"mrbeast"
querySearch query for search-based records (keyword or hashtag without #)"travel"
successScrape status flagtrue
errorError message for failed items"No input provided. Please provide either startUrls or searchQuery."
video.idProfile video ID (profile_video)"7330001112223334444"
video.urlCanonical video URL (profile_video)"https://www.tiktok.com/@mrbeast/video/7330001112223334444"
video.stats.viewsView count (profile_video)1234567
repost.idReposted video ID (profile_repost)"7329998887776665555"
repost.authorMeta.nameAuthor username of the reposted item (profile_repost)"nike"
item.idVideo/item ID from search results (hashtag_search, keyword_search)"7331119995552220000"
item.webVideoUrlWeb URL for hashtag result item (hashtag_search)"https://www.tiktok.com/@user/video/7331119995552220000"
item.stats.playCountViews for keyword search item (keyword_search)45210
item.video.durationVideo duration seconds (keyword_search)21
item.music.titleMusic 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

  1. Sign in to Apify Create or log in to your Apify account to access the actor.

  2. Open the β€œtiktok-scraper” actor Find β€œtiktok-scraper” in the Apify Console and open the actor.

  3. 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".
  4. Choose sections to scrape Set profileScrapeSections to ["videos"] and/or ["repost"] if you are scraping profiles.

  5. Set limits and proxies Configure maxResults (1–1000). Optionally configure proxyConfiguration. If blocks occur, the actor escalates from no proxy β†’ datacenter β†’ residential automatically.

  6. 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.

  7. 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 caseDescription
Trend analysis for marketingTrack hashtags and keyword search results to identify emerging content trends using a tiktok trend scraper workflow.
Competitor content researchCollect profile videos and reposts from competitors to benchmark formats, engagement, and cadence.
Influencer discoveryUse profile video streams and search results as a tiktok influencer scraper to shortlist creators by engagement signals.
Campaign performance trackingMonitor engagement metrics across videos (views, likes, comments, shares) for ongoing campaigns.
Academic & social researchBuild structured datasets of public TikTok posts for topic analysis and time-series studies.
Data engineering pipelinesAutomate a tiktok data scraper pipeline with Apify datasets for ingestion into analytics stacks.
Content strategy optimizationAnalyze 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.

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)
  • 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.

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.