TikTok Scraper - Videos, Profiles, Comments & Hashtags
Under maintenancePricing
from $1.20 / 1,000 video scrapeds
TikTok Scraper - Videos, Profiles, Comments & Hashtags
Under maintenanceScrape TikTok videos, profiles, comments, hashtags, sounds and search results. Get plays, likes, shares, captions, followers and subtitles, and download videos. Free date and popularity filters, no login or API key. Export to JSON, CSV or Excel. Pay only for results.
Pricing
from $1.20 / 1,000 video scrapeds
Rating
0.0
(0)
Developer
Brisk Pebble
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does TikTok Scraper do?
TikTok Scraper extracts public data from TikTok: videos, profiles, comments and replies, hashtags, sounds and search results. Start from any mix of:
- #️⃣ Hashtags: the videos TikTok lists for
#cooking,#fypor any other tag - 😎 Profiles: profile details (followers, likes, bio, emails in the bio) plus posted videos and reposts
- 🔍 Search: Top results, video results, or creators matching a keyword
- 🔗 Any TikTok URL: videos, photo posts,
vm.tiktok.comshort links, and profile, hashtag, sound and search pages - 🎵 Sounds: the videos that use a sound or song
You don't need a TikTok account, API key or login. Results land in a clean dataset you can download as JSON, CSV, Excel, XML or HTML, call through the Apify API, schedule, or connect to Make, Zapier, n8n, Google Sheets, Slack and AI agents over MCP.
Why use this TikTok scraper?
- Drop-in compatible. Input fields and output fields match the most popular TikTok scraper on Apify (
hashtags,profiles,resultsPerPage,postURLs,authorMeta,videoMeta,diggCount, …). Switch by changing the Actor ID; your integrations keep working. - Built for TikTok in 2026. TikTok signs every web API call with tokens (
X-Bogus,X-Gnarly, …) that change often, which breaks most scrapers. This Actor lets TikTok's own code in a real browser sign the requests, and reads pages over plain HTTP whenever possible, so runs stay fast and cheap. - Filters are free. Date range, minimum and maximum likes, minimum plays and pinned-post filters cost nothing extra, and filtered-out videos are never charged. On profiles the scraper stops paginating once it passes your date.
- Exact numbers. Likes, plays, shares, saves and followers come from TikTok's exact counters, not rounded values like "1.3M".
- Comments with replies. Every comment has its author, text, likes and reply count; replies point to their parent comment.
- Media downloads. Optionally save MP4 files, thumbnails, slideshow images, avatars and subtitles to a key-value store.
- Reliable runs. Flagged sessions are replaced automatically, duplicates are removed across inputs, the run resumes after a platform migration without charging twice, and it fails loudly instead of returning an empty "success".
What TikTok data can I extract?
| Videos | Profiles | Comments |
|---|---|---|
| Caption, language, URL, created date | Username, display name, profile URL | Comment text and ID |
| Plays, likes, shares, saves, comments, reposts | Followers, following, total likes, video count | Likes and reply count |
| Author (with follower and like counts) | Bio, bio link, emails found in the bio | Commenter username, name, avatar |
| Sound: name, author, album, original, URL | Verified, private, TikTok Shop seller | Reply flag and parent comment ID |
| Duration, size, resolution, codec, cover and video URLs | Business category, language, region | Liked or pinned by the creator |
| Hashtags, mentions, effects, on-screen text | Account creation date | Video ID and URL |
| Slideshow images, subtitles, posting country | Avatar (and downloaded copy) | Created date |
| Ad, paid partnership, pinned, AI-generated flags |
Every item has a dataType (video, profile or comment), the input it came from and a source object, so you can group results by input.
How to scrape TikTok
- Click Try for free and open the Input tab.
- Add at least one target: a hashtag like
cooking, a username likenasa, a search query, a TikTok URL or a sound. - Set 💯 Number of videos (per hashtag, profile, search or sound).
- Optional: add date and popularity filters, comments, media downloads, or pick a country to scrape as if you were there.
- Click Start, then download your data from the Output tab, or use the API.
How much does it cost to scrape TikTok?
This Actor uses pay-per-event pricing: you pay a small fee per video, profile and comment saved, per video file downloaded, plus a tiny start fee per run. Current prices are on the Pricing tab, and higher Apify plans get automatic discounts. Filters, the country option, subtitles, thumbnails and avatars cost nothing extra.
Maximum results and the run's maximum cost cap your spending exactly; the run stops as soon as either is reached. With the Apify free plan's monthly credit you can try the scraper on a few thousand videos at no cost.
Input example
{"hashtags": ["cooking"],"profiles": ["nasa"],"searchQueries": ["pasta recipe"],"searchSection": "/video","postURLs": ["https://www.tiktok.com/@nasa/video/7697300954667994381"],"resultsPerPage": 50,"oldestPostDateUnified": "30 days","leastDiggs": 1000,"commentsPerPost": 20,"maxRepliesPerComment": 3,"shouldDownloadCovers": true,"proxyCountryCode": "US","maxItems": 2000}
Output example
A video (shortened):
{"dataType": "video","id": "7686212146052549902","text": "s’mores cookie bars 🐻🍫🤎 #smores #smorescookies #cookiebars #baking #dessert","textLanguage": "en","createTimeISO": "2026-09-21T14:13:20.000Z","webVideoUrl": "https://www.tiktok.com/@gisellecooks_/video/7686212146052549902","playCount": 11900000,"diggCount": 1300000,"shareCount": 306200,"commentCount": 3636,"collectCount": 404316,"authorMeta": { "name": "gisellecooks_", "nickName": "Giselle", "verified": false, "fans": 1500000, "profileUrl": "https://www.tiktok.com/@gisellecooks_" },"musicMeta": { "musicId": "7603351654578210832", "musicName": "Venus and Flower", "musicAuthor": "Austin Farwell", "musicOriginal": false },"videoMeta": { "duration": 60, "width": 720, "height": 1280, "definition": "720p", "format": "mp4", "coverUrl": "https://p16-common-sign.tiktokcdn-us.com/..." },"hashtags": [{ "id": "7250", "name": "baking", "title": null, "cover": null }],"isAd": false,"isPinned": false,"isSlideshow": false,"searchHashtag": { "name": "cooking", "views": 107086172719, "videos": 6026846 },"input": "cooking","source": { "type": "hashtag", "input": "cooking" },"scrapedAt": "2026-10-19T17:49:20.496Z"}
A profile:
{"dataType": "profile","id": "7664638705177150477","name": "nasa","nickName": "NASA","profileUrl": "https://www.tiktok.com/@nasa","verified": true,"signature": "Making the seemingly impossible, possible.✨","bioLink": "https://science.nasa.gov/feature/artemis-ii-preliminary-lunar-science-report","emails": [],"fans": 2107037,"following": 23,"heart": 11198124,"video": 57,"input": "nasa","source": { "type": "profile", "input": "nasa" }}
A comment:
{"dataType": "comment","cid": "7698165061331927838","text": "the apple in space has me emotional","diggCount": 0,"replyCommentTotal": 0,"isReply": false,"repliesToId": null,"uniqueId": "addisonbaddison420","createTimeISO": "2026-10-19T00:12:31.000Z","videoId": "7694813092256959774","videoWebUrl": "https://www.tiktok.com/@google/photo/7694813092256959774"}
The Output tab has ready-made Videos, Profiles and Comments tables.
Tips for the best results
- Keep the residential proxy (the default). TikTok blocks most datacenter IPs.
- Use the country option to see what TikTok shows in a given market; trends and availability differ per country.
- Profiles: since 2026 TikTok shows logged-out visitors only the newest videos of many profiles. When that happens the scraper saves the ~10 newest videos from the creator's embed, tells you in the log, and still saves the profile item. To collect more of a creator's videos, add hashtags or search queries they use.
- Monitoring: schedule a daily run with
oldestPostDateUnified: "1"to collect only today's videos. - Speed vs. blocking: 2–5 parallel browser sessions work well. More sessions are faster but more likely to be rate-limited.
Integrations and API
Run the Actor from your code with the Apify API or the Apify clients for JavaScript and Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("<YOUR_USERNAME>/tiktok-scraper").call(run_input={"hashtags": ["cooking"],"resultsPerPage": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["webVideoUrl"], item["diggCount"])
You can also connect it to Make, Zapier, n8n, Google Sheets, Airbyte, Slack, webhooks, and AI agents through the Apify MCP server.
FAQ
Is it legal to scrape TikTok?
This Actor collects only publicly visible data and doesn't log in. Scraping public data is generally legal, but personal data is protected by regulations such as the GDPR, and TikTok's terms restrict automated access. Make sure you have a legitimate reason to collect the data, and ask a lawyer if you're unsure. Read more in Is web scraping legal?
Do I need a TikTok account or API key?
No. The Actor works without login, cookies or TikTok's restricted Research API.
Why did I get fewer videos than "Number of videos"?
TikTok stops serving results for some lists (for example, very deep hashtag pages), your filters may have removed videos, a profile may hide its video list from logged-out visitors (see Tips), or the run reached Maximum results or your maximum cost. The log explains which one.
Can I download the videos?
Yes. Turn on Download video files. Files go to the run's key-value store (or the named store you choose) and each video item gets a videoMeta.downloadedVideoUrl link. Thumbnails, slideshow images, avatars and subtitles can be downloaded too.
Does it get video transcripts?
It downloads the subtitles TikTok has for a video (auto-generated captions or the creator's own) and includes their text. Videos without subtitles are not transcribed.
Something broke. What should I do?
Run again with Debug logging on and open an issue on the Issues tab with the run link. TikTok changes often; fixes usually ship within a day or two.