TikTok Profile Videos Scraper – No Login avatar

TikTok Profile Videos Scraper – No Login

Pricing

$1.00 / 1,000 saved videos

Go to Apify Store
TikTok Profile Videos Scraper – No Login

TikTok Profile Videos Scraper – No Login

Scrape public videos from one or more TikTok profiles. Export video URLs, captions, dates, authors, music and engagement stats to one Dataset row per video. No TikTok account, login or API key is required.

Pricing

$1.00 / 1,000 saved videos

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract public videos from one or more TikTok profiles and receive clean, structured results in an Apify Dataset. This Actor is suitable for collecting a few videos from one profile, building a content inventory, or processing large lists of public creators.

Enter one or more TikTok usernames, with or without the @ prefix, or paste a public TikTok profile URL. Each video is saved as a separate Dataset item with its URL, caption, author, publication date, engagement metrics, music information and available video metadata.

No TikTok account, password, official TikTok API key, browser session or cookies are required. The Actor works with publicly available profile content only. Private, deleted, unavailable or access-restricted videos cannot be returned.

Important: This is an independent, unofficial third-party Actor. It is not affiliated with, sponsored by, endorsed by or approved by TikTok. You are responsible for using the results lawfully and respecting the terms and privacy rights that apply to the source data.

At a glance

  • Scrape one or many public TikTok profiles.
  • Accepts usernames, @handles and public TikTok profile URLs.
  • Save one Dataset row per video.
  • Request a fixed number of videos or all public items available during the run.
  • Process profiles in batches and resume from the next profile when needed.
  • Export results from Apify as JSON, CSV, Excel or other Dataset formats.
  • Use the Actor without configuring a TikTok login or an external scraping service.
  • Pay per saved video, with no video charge for diagnostic/error rows.

What data is extracted?

Each successful Dataset item represents one public TikTok video and can contain:

FieldDescription
videoIdTikTok's public identifier for the video.
videoUrlCanonical URL of the TikTok video.
descriptionCaption or description published with the video.
createdAtPublication date in ISO date-time format, when available.
createTimeOriginal Unix timestamp, when available.
profileInputThe profile value used in the input.
profileUrlNormalized public profile URL.
usernameNormalized TikTok username.
authorAuthor ID, username and display name when available.
statsPublic play, like, comment, share and collect counts when available.
videoDuration and available cover-image URLs.
musicMusic ID, title and author name when available.
retrievedAtTime at which the item was collected.

Public counters and metadata are snapshots. They can change after the run, and some fields may be empty when TikTok does not expose them for a particular video.

The Actor returns metadata and public URLs. It does not download MP4 video files, private media, comments, followers, following lists or account credentials.

Quick start

  1. In Input, add one or more values to profiles.
  2. For a test, set maxVideosPerProfile to a small number such as 5.
  3. Click Start.
  4. Open the Dataset tab to review the video rows.
  5. Export the Dataset in the format you need, or connect it to another Apify workflow.

Quick test input

{
"profiles": ["@corgibobaa"],
"maxVideosPerProfile": 5,
"maxTotalVideos": 5
}

Input reference

profiles — required

List of public TikTok profiles to process. Use a username, an @username, or a direct public profile URL:

[
"@creatorname",
"creatorname",
"https://www.tiktok.com/@anothercreator"
]

Profile URLs must point directly to a TikTok user profile. Video, hashtag, sound, shortened and other TikTok URLs are rejected. Repeated profiles are deduplicated before processing. The input accepts up to 1,000 profile values.

startIndex

Zero-based position from which to start in the deduplicated profile list. Leave it at 0 for a new run.

For a large batch, use the nextStartIndex value from the previous run's SUMMARY record. This lets you continue with the next group of profiles without repeating profiles already processed.

maxProfilesPerRun

Maximum number of profiles processed in one run.

  • Default: 100
  • Maximum: 1,000
  • Use a lower value for small, predictable runs.
  • Increase it for batch collection when the input list contains more profiles.

This limit controls profiles, not videos. The video limits below control how many results are collected from those profiles.

maxVideosPerProfile

Maximum number of unique videos saved for each profile.

  • Default: 5
  • 0: continue until the public items available for that profile are exhausted or another safety limit is reached.
  • A positive value such as 10, 100 or 1,000: stop after that many unique videos for each profile.

For a quick test, use 5 or 10. For a complete profile inventory, use 0 and keep maxPagesPerProfile at its default unless the SUMMARY record reports that the page limit was reached.

maxTotalVideos

Maximum number of videos saved across the entire run.

  • Default: 5
  • 0: no explicit run-wide video limit.
  • A positive value: stop once that many videos have been saved across all selected profiles.

This is useful when you want to control the maximum size and cost of a multi-profile run. For example, maxVideosPerProfile: 100 and maxTotalVideos: 1,000 limits each profile to 100 videos while also limiting the whole run to 1,000 videos.

maxPagesPerProfile

Safety limit for the amount of profile history requested in one run.

  • Default: 1,000
  • Minimum: 1
  • Maximum: 5,000

The default is suitable for normal use. If a very large profile stops with MAX_PAGES, increase this value and run again, provided the run duration and budget are acceptable.

includeCoverUrls

Whether to include the public cover-image URL fields in each video item.

  • Default: true
  • Set to false for a smaller Dataset when cover images are not needed.

Cover URLs are supplied by TikTok and may expire or change. They are links, not permanent media storage.

Examples for common goals

Collect a small sample from one profile

Use this to verify that the profile is correct and inspect the output before a larger run:

{
"profiles": ["https://www.tiktok.com/@examplecreator"],
"maxVideosPerProfile": 10,
"maxTotalVideos": 10
}

Collect all public videos available for one profile

{
"profiles": ["@examplecreator"],
"maxVideosPerProfile": 0,
"maxTotalVideos": 0
}

“All” means all public items available to the Actor during that run. It does not include private, deleted, unavailable or access-restricted videos, and TikTok may return fewer items than the count displayed in the app or on the profile.

Collect a controlled batch from many profiles

{
"profiles": ["@creator1", "@creator2", "@creator3"],
"maxProfilesPerRun": 3,
"maxVideosPerProfile": 100,
"maxTotalVideos": 250,
"includeCoverUrls": true
}

The run stops at the first applicable limit. In this example, no profile can contribute more than 100 videos and the complete run cannot save more than 250 videos.

Resume a large profile list

  1. Run the first batch with maxProfilesPerRun set to the desired batch size.
  2. Open the SUMMARY record in the run's Key-value store.
  3. Copy nextStartIndex into startIndex for the next run.
  4. Use the same profile list and ordering.

If nextStartIndex is null, all supplied profiles were processed. If you change the order or remove profiles between runs, the resume position will no longer refer to the same profile.

Understanding the results

Dataset items

Successful video items have success: true and normally status: "ok".

Example:

{
"success": true,
"status": "ok",
"profileInput": "@examplecreator",
"profileUrl": "https://www.tiktok.com/@examplecreator",
"username": "examplecreator",
"videoId": "1234567890",
"videoUrl": "https://www.tiktok.com/@examplecreator/video/1234567890",
"createdAt": "2026-08-18T10:20:30Z",
"description": "Public video caption",
"author": {
"id": "author-id",
"uniqueId": "examplecreator",
"nickname": "Example Creator"
},
"stats": {
"playCount": 1200,
"diggCount": 80,
"commentCount": 4,
"shareCount": 6,
"collectCount": 2
},
"video": {
"duration": 18,
"coverUrl": "https://example.com/cover.jpg"
},
"music": {
"id": "music-id",
"title": "Sound title",
"authorName": "Sound creator"
}
}

Diagnostic items

When a profile cannot be completed, the Actor records a diagnostic item with fields such as success: false, errorCode, errorMessage, pages, itemsReceived and uniqueVideos. These rows help identify which profile needs attention and are not charged as successful video results.

SUMMARY record

Every run creates a SUMMARY record in the Key-value store. It contains:

  • Number of profiles requested, selected and processed.
  • Number of videos saved.
  • The starting position and nextStartIndex for batch resumption.
  • A result summary for each profile.
  • The profile status, pages processed, items received, unique videos and duplicates skipped.
  • A stop reason when a configured limit or availability issue ends a profile early.

Useful stop reasons include:

Stop reasonMeaning
COMPLETENo more public items were available for that profile during the run.
MAX_VIDEOSmaxVideosPerProfile was reached.
MAX_TOTAL_VIDEOSmaxTotalVideos was reached for the complete run.
MAX_PAGESmaxPagesPerProfile was reached.
An error codeThe profile or run could not be completed; inspect the diagnostic item.

Pricing

The customer is charged only for successful video results:

  • $0.001 per saved video — $1 per 1,000 video results.
  • There is no separate customer charge for starting a run.
  • Execution, proxy and infrastructure costs are covered by the Actor owner.
  • Diagnostic/error rows are not charged as successful video results.
  • A video is saved only when the platform confirms that one video charge was applied.
  • If the run's spending limit is reached, the Actor stops before saving another billable video.

For example, a run that saves 100 videos costs the customer $0.10. The number of billable video results is controlled by maxVideosPerProfile and maxTotalVideos.

Limitations and important expectations

  • Only publicly available profile content can be collected.
  • Private, deleted, region-restricted, age-restricted or temporarily unavailable videos may be missing.
  • TikTok can change public fields, ordering, pagination or availability at any time.
  • A profile's displayed video count is informational and is not a guarantee of how many items will be returned.
  • Cover URLs may expire; export or store the images separately if permanent access is required.
  • This Actor returns metadata and public URLs, not downloaded video files.
  • Large profiles can take longer and produce more Dataset items and charges.
  • The Actor does not collect passwords, cookies or private account information.

Troubleshooting

The run returns no videos

Check that:

  1. The input is a TikTok username, @username, or direct public profile URL. Do not enter a video, hashtag, sound or shortened URL.
  2. The username is spelled correctly.
  3. The profile is public and currently has publicly available videos.
  4. maxVideosPerProfile and maxTotalVideos are not set to 0 in a context where you expected a small sample, or to an unexpectedly low value.
  5. The SUMMARY record does not report an error or an early stop reason.

The run returns fewer videos than expected

Review SUMMARY and check stopReason, uniqueVideos, duplicatesSkipped and profileVideoCount when present. The result may be limited by maxVideosPerProfile, maxTotalVideos, maxPagesPerProfile, deleted/private content or temporary TikTok availability.

The run stops at MAX_PAGES

Increase maxPagesPerProfile and run the profile again. Keep a finite maxVideosPerProfile or maxTotalVideos when you want predictable cost and duration.

A profile is reported as an error

Open the diagnostic Dataset item and inspect errorCode and errorMessage. Verify the username and try the same profile again later. Repeated failures may indicate that the profile is private, unavailable, temporarily restricted or no longer exposes the expected public data.

FAQ

Do I need a TikTok account or login?

No. The Actor is designed for public profile data and does not ask you to provide TikTok credentials.

Do I need an official TikTok API key?

No. There is no TikTok API key field in the input.

Can I scrape multiple profiles in one run?

Yes. Add multiple usernames or public profile URLs to profiles, then use maxProfilesPerRun and maxTotalVideos to control the batch.

Can I scrape all videos from a profile?

Set maxVideosPerProfile to 0. The Actor continues until the public items available during the run are exhausted or a safety limit is reached. Complete historical coverage cannot be guaranteed for content that is private, deleted, unavailable or not returned by TikTok.

Can I download the TikTok videos?

No. The Actor returns video metadata, cover URLs when enabled and canonical TikTok video URLs. It does not download MP4 files.

Will repeated runs return the same engagement numbers?

Not necessarily. Likes, views, comments, shares and other public counters are live snapshots and may change between runs.

How do I export the data?

Open the Dataset associated with the run and use Apify's export options. You can also connect the Dataset to schedules, webhooks, integrations or another workflow from Apify.

Is a proxy or special setup required?

No manual proxy setup is required for normal use. You only need to provide the usernames and the limits that match your job.

The Actor is limited to publicly available data, but you are responsible for deciding whether your use complies with applicable law, privacy obligations, TikTok's terms and any contractual restrictions. Do not collect personal data without an appropriate lawful basis.

Support

When reporting a problem, include the Apify run ID, the username or profile URL used, the relevant SUMMARY stop reason and a small example of the affected output. Do not include passwords, tokens or private credentials.