TikTok Video Scraper
Pricing
from $1.70 / 1,000 results
TikTok Video Scraper
Scrape TikTok videos from URLs, profiles, hashtags, keyword search, or trends โ one rich record each: engagement stats, author, music, hashtags, no-watermark download and native transcript. Fast, HTTP-only, and you are never charged for unavailable or unmatched videos.
Pricing
from $1.70 / 1,000 results
Rating
0.0
(0)
Developer
Kelopr
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
5
Monthly active users
6 days ago
Last modified
Categories
Share
๐ฌ TikTok Video Scraper โ a recipe book for pulling clean TikTok data
Five ways in, one clean record out. Whether you have a single video link, a creator you're watching, a topic you're chasing, or a trending feed to capture, there's a recipe below for it. Pick the one that matches your goal, copy the input, run it. Every recipe returns the same flat schema โ engagement, creator, media, sound, and (optionally) the spoken transcript โ over plain HTTP, with no login and no headless browser.
๐ฝ๏ธ FIVE WAYS IN ONE FLAT RECORD OUT ๐ฝ๏ธโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ๐ postUrls / postIds ยท ๐ง profiles ยท ๐ท๏ธ hashtags๐ searchQueries ยท ๐ฅ trending (trendCountry)โโ โโโ direct links: fetched as-isโ โโโ lists: ๐งญ discover public feeds firstโผ (deepDiscovery expands & verifies)๐ฌ fetch each video โ request-only, no login, no browserโ๐ฏ verify โธ ๐งน dedupe โธ ๐ข maxItems cap (one global cap)โ+ ๐ transcript + ๐พ downloads (optional add-ons)โผโ one flat row per video ยท โ ๏ธ failures โถ Issues dataset
Prefer to skip straight to a task? Jump to a recipe:
- ๐ฝ๏ธ Recipe 1 โ Grab specific videos you already have links for
- ๐ฝ๏ธ Recipe 2 โ Follow a creator's recent posts
- ๐ฝ๏ธ Recipe 3 โ Harvest a topic across hashtags, search & trends
- ๐ฝ๏ธ Recipe 4 โ Build a spoken-word transcript corpus
- ๐ฝ๏ธ Recipe 5 โ Archive no-watermark videos & images that won't expire
๐งบ What's in the pantry
Before the recipes, here's every ingredient the Actor can put on a plate โ the same set no matter which source you start from:
- ๐ Identity โ
id,url,type,text(caption),createTimeISO,hashtags,mentions,textLanguage,locationCreated,isAd,isAIGC,isPinned - ๐ Engagement โ
playCount,diggCount,commentCount,shareCount,collectCount,repostCount - ๐ง Creator โ
authorUsername,authorName,authorVerified,authorSignature,authorFollowers,authorFollowing,authorHearts,authorVideoCount,authorPrivate - ๐๏ธ Media โ
videoDuration,videoWidth,videoHeight,videoDefinition,videoCodec,videoCoverUrl,videoPlayUrl,videoDownloadUrl,videoQualities - ๐ต Sound โ
musicTitle,musicAuthor,musicIsOriginal,musicDuration,musicPlayUrl - ๐ Transcript โ
hasAutoCaption,subtitleLanguages,transcriptLanguage,transcriptSource,transcript - ๐พ Storage links โ
videoStorageUrl,coverStorageUrl,authorAvatarStorageUrl(only when the matching download is enabled) - ๐งญ Provenance โ
source,sourceInput,sourceRank,discoverySource,discoveryQueryโ so every row tells you which input produced it
Export the finished dataset as JSON, JSONL, CSV, Excel, XML or RSS, or pull it from the Apify API.
๐ Recipe 1 โ Grab specific videos you already have links for
Goal: you have a handful of TikTok URLs, short vm.tiktok.com links, photo posts, or bare video IDs, and you want the full record for each.
Input:
{"postUrls": [{ "url": "https://www.tiktok.com/@apifyoffice/video/7200360993149553925" }],"postIds": ["7659338240096226580"],"maxItems": 10}
What comes back: one row per video with the full pantry above โ caption, all six engagement counts, the creator block, media dimensions and the quality ladder, and the sound. A temporarily-unavailable video is retried up to maxRetries times; if it stays deleted, private, or region-locked, it goes to the free Issues dataset instead of your paid results.
๐ง Recipe 2 โ Follow a creator's recent posts
Goal: track one or more creators โ their latest posts, engagement, and profile stats over time.
Input:
{"profiles": ["@scout2015"],"maxItems": 50,"deepDiscovery": true,"maxDiscoveryQueries": 12}
What comes back: the creator's authoritative recent posts. With deepDiscovery on (the default), the Actor expands through the creator's own public topics to reach further than the first page โ every result is still checked to belong to the exact author. Private, deleted, or non-indexed history isn't reachable request-only. Each row carries the Creator fields, so you can also read the dataset as a creator table (followers, total likes, verification, posting totals).
๐ก To collect only posts since your last run, keep
dedupeon and pass the previous run time asonlyNewerThan(a Unix timestamp in seconds). Older posts are dropped before they ever reach the paid output.
๐ Recipe 3 โ Harvest a topic across hashtags, search & trends
Goal: cast a wide net on a subject โ pull hashtag feeds, keyword searches, and the current trending playlist together, deduplicated into one dataset.
Input:
{"hashtags": ["travel", "foodtok"],"searchQueries": ["ai tools", "startup marketing"],"trending": true,"trendCountry": "US","maxItems": 50,"dedupe": true}
What comes back: a merged, de-duplicated feed. Hashtag results are each verified to actually contain the requested tag before they're saved โ no noise. Search pulls the main public feed plus related TikTok topic feeds. Trends combines the public trending playlist, public trend discovery, and Creative Center ranking signals for your trendCountry (13 supported: US, GB, DE, FR, IT, ES, CA, AU, BR, MX, JP, KR, ID). Trend rows carry extra ranking columns โ trendSource, trendMetric, trendVideoViews, trendEngagementRate โ visible in the Engagement dataset tab.
๐ก You can mix these lists with
postUrlsandprofilesin the same run. ThemaxItemscap and deduplication apply across all sources together.
๐ Recipe 4 โ Build a spoken-word transcript corpus
Goal: get what was actually said in each video as readable text โ for NLP datasets, search, or content analysis.
Input:
{"searchQueries": ["technology news"],"maxItems": 20,"transcript": "native","transcriptLanguage": "eng"}
What comes back: on top of the usual record, each video that has a caption track gets transcript (the full text), transcriptLanguage, transcriptSource, plus hasAutoCaption and the list of subtitleLanguages available. transcript accepts never (off) or native (TikTok's creator or auto-generated captions). Set transcriptLanguage to a preferred code such as eng, rus, spa, or deu; leave it empty to prefer the original. Videos with no caption track are still valid rows โ they simply carry no transcript. The Transcripts dataset tab shows caption, languages, source, and the full text side by side.
๐พ Recipe 5 โ Archive no-watermark videos & images that won't expire
Goal: keep the media itself, not just the metadata. TikTok CDN URLs are signed and die within about a day โ this recipe saves permanent copies.
Input:
{"profiles": ["@apifyoffice"],"maxItems": 25,"shouldDownloadVideos": true,"shouldDownloadCovers": true,"shouldDownloadAvatars": true}
What comes back: each enabled download saves the file into the run's key-value store and adds a permanent Apify link to the row โ videoStorageUrl for no-watermark MP4s, coverStorageUrl for thumbnails, and authorAvatarStorageUrl for creator pictures (each creator is fetched only once per run). Combine this recipe with any of the four above.
๐งโ๐ณ Kitchen notes
maxItemsis one global cap for the whole run across every source. WithmaxItems: 0, per-source safety limits apply instead: 50 profile posts, 100 hashtag/search posts, 50 trend posts per input.- Failures never bill as videos. Deleted, private, region-locked, unmatched, or retry-exhausted inputs are written to a separate Issues dataset with a clear reason.
- No browser, ever. The whole thing runs request-only over HTTP โ no Playwright, Chromium, or headless browser is launched.
๐ Full ingredient list (input reference)
| Field | Type | Default | What it does |
|---|---|---|---|
postUrls | array | โ | TikTok post URLs or short links |
postIds | array | โ | Bare numeric TikTok video IDs |
profiles | array | โ | Creator usernames or profile URLs |
hashtags | array | โ | Hashtags with or without # (verified in results) |
searchQueries | array | โ | Keyword or phrase searches |
trending | bool | false | Include current ranked trend videos |
trendCountry | enum | US | Country for Creative Center signals (13 supported) |
deepDiscovery | bool | true | Follow related public TikTok feeds for deeper results |
maxDiscoveryQueries | int | 12 | Max public topic feeds scanned per list input (1โ30) |
maxItems | int | 20 | Global result cap (0 = per-source safety limits) |
dedupe | bool | true | Save each video ID only once |
transcript | enum | never | never or native (TikTok captions) |
transcriptLanguage | string | โ | Preferred code such as eng, rus, spa |
shouldDownloadVideos | bool | false | Store no-watermark MP4s to Apify |
shouldDownloadCovers | bool | false | Store cover images to Apify |
shouldDownloadAvatars | bool | false | Store avatars + add authorAvatarStorageUrl |
onlyNewerThan | int | 0 | Skip posts at or before a Unix timestamp |
maxConcurrency | int | 5 | Parallel video requests (1โ50) |
maxRetries | int | 4 | Retries for a temporarily unavailable video (0โ10) |
listMaxRetries | int | 4 | Retries for list/discovery requests (1โ10) |
requestTimeoutSecs | int | 25 | Max time for one network request (5โ120) |
proxyConfiguration | object | Apify Proxy | Connection settings (default tuned for TikTok) |
โญ Cooked something good with these recipes? A short review on the Apify Store helps others find the book โ and tells me which recipe to write next.
๐ท๏ธ Tags: tiktok ยท tiktok scraper ยท video scraper ยท tiktok hashtag ยท tiktok profile ยท tiktok trends ยท social media ยท transcript ยท influencer research