TikTok Profile & Video Scraper
Pricing
from $3.00 / 1,000 delivered videos
TikTok Profile & Video Scraper
Scrape public TikTok profiles and video URLs for video statistics, author details, music and available media metadata. Export data for research and reporting.
Pricing
from $3.00 / 1,000 delivered videos
Rating
0.0
(0)
Developer
Arabia Insights
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 hours ago
Last modified
Categories
Share
TikTok video scraper for public profiles and posts
Scrape TikTok profiles and individual video URLs into structured records for creator research, content reporting, and TikTok video statistics. Combine profiles and posts, filter by publication date, and prepare a bulk TikTok data export. Duplicate video IDs are delivered once per run.
Get your first result
- Enter a public username or profile URL in Profiles, or post links in Videos.
- Start with a small result limit and the default country setting.
- Open Results and check Run summary for failures or partial collection before exporting.
{ "profiles": ["tiktok"], "maxVideosPerProfile": 10 }
What this Actor does
Collect available descriptions, publication dates, video dimensions and duration, engagement counts, author profiles, hashtags, mentions, and music information. When supplied by TikTok, records can include slideshow images, subtitle tracks, audio links, effects, and detailed mentions. The Actor does not transcribe audio or generate subtitles. Use the results to compare posts, track engagement over time, and identify mentioned creators. Counts reflect collection time and can change later.
Input
| Setting | Purpose |
|---|---|
profiles | Up to 100 usernames, @handles, or public profile URLs. |
videos | Up to 1,000 canonical video URLs, vt.tiktok.com or vm.tiktok.com share links, tiktok.com/t/ links, or supported /v/ links. |
maxVideosPerProfile | 1–500 results per profile after filtering; default 100. |
excludePinnedPosts | Excludes pinned posts from profile listings. Directly requested pinned videos remain eligible; date filters still apply. |
profileSorting | latest uses the available listing order; pinned posts may affect chronology. oldest scans available posts and returns the oldest found first. |
fromDate, toDate | Inclusive UTC dates in YYYY-MM-DD form. Unknown publication dates are excluded when filtering. |
proxyCountry | Access country, default US. Availability varies by country. |
locale | Preferred locale, such as en-US. |
maxConcurrency | Simultaneous tasks, 1–5; default 2. |
proxyConfiguration | Apify Residential Proxy only. Custom proxies and other groups are rejected. A selected country must match proxyCountry. |
Provide at least one profile or video. Both lists can be combined. Unsupported options are rejected; remove them and use the current form. No login or cookies are accepted.
Output
One row represents one unique video. This shortened, invented example shows common fields; Details and JSON export include all retained fields:
{"videoId": "7400000000000000001","videoUrl": "https://www.tiktok.com/@example_creator/video/7400000000000000001","description": "An example public post","postedAt": "2026-08-01T12:30:00.000Z","viewCount": 1200,"likeCount": 0,"commentCount": null,"pinned": false,"requestedUsername": "example_creator","requestedProfileUrl": "https://www.tiktok.com/@example_creator","scrapedAt": "2026-09-22T12:00:00.000Z"}
| Fields | Meaning |
|---|---|
videoId, videoUrl, description, postedAt | Post identity, text and publication time; IDs are strings. |
viewCount, likeCount, commentCount, shareCount, favoriteCount | Available engagement counts. Unknown is null; observed zero remains zero. |
durationSeconds, width, height | Available video duration and dimensions. |
author | Username, display name, profile URL, avatar, bio, verification and public account counts. |
hashtags, mentions, detailedMentions | Hashtags and mentioned accounts. |
music | Sound identity, title, artist, album, duration, cover, audio link and original-audio flag when available. |
pinned, isAd, isSlideshow | Post flags. Unknown pinned/ad flags are null; slideshow is false when none is identified. |
slideshowImageUrls, slideshowImageCount | Up to 50 image links and the reported slide count. |
subtitles, effectStickers | Up to 20 caption tracks and effects. Caption source: "ASR" means automatic speech recognition; unknown origins are null. |
thumbnailUrl, dynamicThumbnailUrl, originCoverUrl, videoPlayUrl, videoDownloadUrl | Available media links subject to expiry and access restrictions. |
requestedUsername, requestedProfileUrl, scrapedAt | Target correlation and collection time. Direct-video identity is resolved from the post. |
Exports
Use JSON or the Dataset API to preserve nested objects and arrays. Apify also offers CSV and Excel exports for spreadsheet workflows; select fields and check how your spreadsheet handles nested values. Retain JSON alongside spreadsheets when you need the full nested record. Overview is compact; Details includes all public fields.
Contract migration
Version 1.0 removes top-level source and author.secUid from new results. Run summary schema version 2 removes sourceCounts and uses AVAILABLE_LIST_ENDED, COLLECTION_STALLED and SCAN_LIMIT_REACHED for corresponding collection outcomes. Update integrations using those fields or outcome names. Existing datasets are unchanged.
Partial results and reason codes
Run summary reports delivered totals, skipped duplicates and filters, per-target outcomes, retries and failures. An interruption or spending limit is reported as a partial outcome when shutdown can complete. A successful platform run does not prove all posts were available. Check partial outcomes such as LIST_TRUNCATED or SCAN_LIMIT_REACHED. Private accounts, missing posts, country restrictions, login requirements, access challenges and rate limits can reduce results or stop collection.
Pricing and limits
$3 per 1,000 delivered videos ($0.003 per video), pay per event. There is no Actor startup fee. Each unique video or slideshow post saved to Results counts once; duplicate inputs do not create another result fee. A run that delivers no videos has no result fee. Failed or interrupted runs still charge for videos already delivered.
Apify platform usage is additional, including compute, storage, transfer and Residential Proxy usage according to your account plan. Set a maximum run cost before starting. Run summary includes result-charge totals when available; Apify run usage details show the platform charges.
Oldest sorting may examine many posts before returning a small result set, increasing time and platform usage. Collection can stop short of the requested cap. A 500-result limit is a maximum, not a promise of 500 available posts. Resurrecting a run from this version preserves delivered video IDs and per-profile caps. A hard stop can leave a summary unfinished until the run resumes; check the platform run status and dataset too. Compare video IDs when combining separate runs.
What this Actor does not do
This Actor is not an official TikTok API integration. It does not log in, does not solve CAPTCHAs, and does not download media into storage. Media URLs can expire or be session-bound and may fail outside the run. videoDownloadUrl does not guarantee a downloadable or watermark-free file.
Scheduling, API, webhooks, and integrations
Save an Apify task to reuse inputs and attach a schedule for periodic collection. You can start runs through the Apify API and retrieve results using the run's dataset ID. Webhooks and integrations can trigger downstream processing. Keep API credentials private and check Run summary before treating a run as a successful refresh.
Troubleshooting
Why did I receive fewer results?
Check date filters, pinned exclusion, duplicates and the per-target stop reason. Increasing the limit cannot make private, removed or restricted content accessible.
Why are fields null?
TikTok does not supply every field for every post. Missing information stays null rather than being reported as zero. Slideshow and subtitle metadata may be absent.
How do I get help?
Use the Actor Issues page. Include the run ID, sanitized input and expected result. Do not post tokens, cookies or signed media URLs.
Privacy, compliance, and retention
Only request public data you are entitled to process. Consider TikTok's terms, its privacy policy, and applicable obligations for your use case. Results and operational records remain in your Apify account under its storage and retention settings.