How to scrape TikTok
Scrape TikTok videos by sounds (music) and by places (location), plus hashtag feeds, keyword and account search, and profile videos or reposts. Fields: video URL, caption, views, likes, comments, shares, date, creator, music, place, subtitles, optional MP4 download and transcript. No login.
Open TikTok Scraper: Hashtags, Search, Sounds, Places, Profiles on Apify
Turn any TikTok hashtag, search keyword, sound, place or profile into a clean table of videos: video URL, caption, views, likes, comments, shares, saves, post date, duration, sound, tagged place, subtitles, hashtags, and the creator's username, follower count and bio link. Search accounts by keyword. Optionally save the MP4 files and the spoken transcript. No login, no cookies, no TikTok account.
- In short: TikTok Hashtag & Search Scraper (Apify actor
transparent_meteorite/tiktok-hashtag-search-scraper) reads the public video feeds of TikTok hashtags, sounds (music), places (locations) and profiles (videos and reposts), plus TikTok video and account search, and returns one row per video or account. - Who it is for: marketers and agencies finding trends and creators, brands tracking a campaign hashtag, influencer research, social listening, researchers.
- Input: hashtags; search keywords (videos or accounts); sound URLs or IDs; place URLs or IDs; profiles with videos and/or reposts; results per source; date, likes and views filters; max items; MP4, cover and subtitle download; transcript text; monitor mode; proxy.
- Output: 39 fields per video: id, webVideoUrl, text, playCount, diggCount, commentCount, shareCount, collectCount, createTimeISO, engagementRate, hashtags, isPinned, isSponsored, locationMeta (place, address, city, category), videoMeta (subtitleLinks, covers), musicMeta, authorMeta (name, fans, verified, bio link), mediaUrls, transcript. Account rows: username, name, bio, followers, likes, verified. JSON, CSV or Excel.
- Pricing: pay per event. Per video or account delivered: $0.0021 free plan, $0.0014 Bronze, $0.00105 Silver, $0.0007 Gold, Platinum and Diamond. MP4 download (optional): $0.0009 to $0.0003 per video.
- Limits: only what TikTok shows logged-out visitors; a feed usually runs to a few hundred videos, account search to about 10 accounts per keyword.
What it outputs
| Field | Meaning |
|---|---|
id, webVideoUrl |
Video ID and link |
text |
Caption |
playCount, diggCount, commentCount, shareCount, collectCount |
Views, likes, comments, shares, saves |
engagementRate |
(likes + comments + shares) / views, in percent |
createTime, createTimeISO |
When it was posted |
hashtags, mentions |
Hashtags and @mentions |
videoMeta |
Duration, size, cover and original cover, subtitleLinks (language, format, URL), downloadAddr when downloaded |
musicMeta |
Sound name, author, original sound flag, play URL, cover, musicUrl |
locationMeta |
Tagged place: name, address, city, country, category, placeUrl |
isPinned, isSponsored, hasTikTokShopProduct, effectStickers, slideshowImageLinks |
Profile pin, paid partnership, shop link, effects, photo-post images |
mediaUrls, transcript |
Stored MP4/cover links and spoken text, when requested |
searchMusic, searchPlace, fromProfileSection |
Which sound, place or profile section the row came from |
authorMeta |
Creator username, nickname, profile URL, verified, followers, following, likes, videos, bio, bio link |
isAd, isSlideshow, isAiGenerated, textLanguage, locationCreated |
Flags and language |
searchHashtag |
For hashtag feeds: name, ID, total views and total videos of the hashtag |
searchQuery, input, scrapedAt |
The keyword, the input, read time |
Sample row (shortened):
Example input
{
"hashtags": ["cooking"],
"searchQueries": ["pasta recipe"],
"resultsPerPage": 30
}Sample output
{
"id": "7638304516588195103",
"webVideoUrl": "https://www.tiktok.com/@cristiiicarrillo/video/7638304516588195103",
"text": "Creamy pasta recipe ... #creamypasta #pasta #easyrecipe",
"playCount": 6700000,
"diggCount": 267000,
"commentCount": 1129,
"shareCount": 53700,
"createTimeISO": "2026-05-10T16:42:50.000Z",
"engagementRate": 4.8,
"authorMeta": { "name": "cristiiicarrillo", "fans": 94400, "verified": false },
"searchQuery": "pasta recipe"
}Sample taken from the actor's README; values shown as placeholders there are placeholders.
FAQ
Do I need a TikTok account or cookies?
No.
Can I get videos from several hashtags at once?
Yes: list them all; each gets up to resultsPerPage videos, and searchHashtag on each row tells you which hashtag it came from.
Does it download the videos?
Yes, if you turn on Download videos: each MP4 is stored in the run's key-value store and linked in mediaUrls. Only download videos you have the rights to use.
Can I get subtitles or a transcript?
Yes. videoMeta.subtitleLinks lists TikTok's caption files for every video that has them; Add transcript text puts the spoken words in a transcript field.
Can I find every video at a restaurant or venue?
Yes: put the place URL in places. Every row has locationMeta with the name, address, city and category.
Can I find small creators?
Yes: set mostDiggs (maximum likes) and read authorMeta.fans.
What does a failed hashtag cost?
Nothing. Only delivered videos are charged.
Where do I run it?
On Apify: https://apify.com/transparent_meteorite/tiktok-hashtag-search-scraper. Check the Pricing tab there for current prices.
Try TikTok Scraper: Hashtags, Search, Sounds, Places, Profiles on Apify