TikTok Profile & Video Scraper avatar

TikTok Profile & Video Scraper

Pricing

from $3.00 / 1,000 delivered videos

Go to Apify Store
TikTok Profile & Video Scraper

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

Arabia Insights

Maintained by Community

Actor 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

  1. Enter a public username or profile URL in Profiles, or post links in Videos.
  2. Start with a small result limit and the default country setting.
  3. 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

SettingPurpose
profilesUp to 100 usernames, @handles, or public profile URLs.
videosUp to 1,000 canonical video URLs, vt.tiktok.com or vm.tiktok.com share links, tiktok.com/t/ links, or supported /v/ links.
maxVideosPerProfile1–500 results per profile after filtering; default 100.
excludePinnedPostsExcludes pinned posts from profile listings. Directly requested pinned videos remain eligible; date filters still apply.
profileSortinglatest uses the available listing order; pinned posts may affect chronology. oldest scans available posts and returns the oldest found first.
fromDate, toDateInclusive UTC dates in YYYY-MM-DD form. Unknown publication dates are excluded when filtering.
proxyCountryAccess country, default US. Availability varies by country.
localePreferred locale, such as en-US.
maxConcurrencySimultaneous tasks, 1–5; default 2.
proxyConfigurationApify 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"
}
FieldsMeaning
videoId, videoUrl, description, postedAtPost identity, text and publication time; IDs are strings.
viewCount, likeCount, commentCount, shareCount, favoriteCountAvailable engagement counts. Unknown is null; observed zero remains zero.
durationSeconds, width, heightAvailable video duration and dimensions.
authorUsername, display name, profile URL, avatar, bio, verification and public account counts.
hashtags, mentions, detailedMentionsHashtags and mentioned accounts.
musicSound identity, title, artist, album, duration, cover, audio link and original-audio flag when available.
pinned, isAd, isSlideshowPost flags. Unknown pinned/ad flags are null; slideshow is false when none is identified.
slideshowImageUrls, slideshowImageCountUp to 50 image links and the reported slide count.
subtitles, effectStickersUp to 20 caption tracks and effects. Caption source: "ASR" means automatic speech recognition; unknown origins are null.
thumbnailUrl, dynamicThumbnailUrl, originCoverUrl, videoPlayUrl, videoDownloadUrlAvailable media links subject to expiry and access restrictions.
requestedUsername, requestedProfileUrl, scrapedAtTarget 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.