TikTok Profile Scraper avatar

TikTok Profile Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
TikTok Profile Scraper

TikTok Profile Scraper

Scrape TikTok profiles and recent videos without login or cookies. Extract video views, likes, comments, shares, favorites, captions, dates, creator profiles, music metadata, and optional video/audio downloads.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

MrDoe

MrDoe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

5 days ago

Last modified

Share

TikTok Scraper

TikTok Scraper — scrape profile videos & download them (MP4 + MP3)

Give it a TikTok profile URL and get every recent video as clean data — play, like, comment, share and favorite counts, the caption, the author, and the sound — plus an optional download of the video file and its audio track. No TikTok login, no cookies, no account.

This Actor is a TikTok profile scraper, a TikTok video downloader, and a TikTok sound / audio downloader in one.


What does the TikTok Scraper do?

Point it at one or more public TikTok profiles. It collects each profile's recent videos and returns one dataset row per video. By default it also downloads each video as an .mp4 and its sound as an .mp3 to storage, with direct links on the row.

What a TikTok video gives you

Why use this TikTok scraper?

  • Creator & competitor tracking — pull the full engagement set (plays, likes, comments, shares, favorites) for every recent video on a profile without opening each one.
  • Sound & trend research — every row carries the video's music/sound: title, artist, and whether it's an original sound.
  • Archive or repurpose — download the actual .mp4 and .mp3 files straight into Apify storage, not just links that expire.
  • No login — no account, no cookies, nothing to connect and no account to get restricted.
  • Just works — the Actor handles the hard part (bot detection, rate limits, rotating identities, retries) so you don't manage any of it.
  • Standard exports — JSON, CSV, Excel, XML, or the Apify API.

What makes this Actor different?

  • Complete data in one pass — every engagement count, the caption, the author, the sound, and the actual video and audio files. No second tool, no stitching results together.
  • Reliable at scale — built to keep working through TikTok's frequent anti-scraping changes, with automatic retries and identity rotation handled for you.
  • Real downloads — MP4 + MP3 saved straight to storage with permanent links, so what you collect today still opens next month.
  • No account risk — nothing is ever logged in, so there's no account to rate-limit, flag or ban.

How it works

How the TikTok Scraper works

  1. Your input — one or more profile URLs or @handles, plus maxItems per profile and the download toggles.
  2. The Actor collects the data — it takes care of everything between your input and clean results: anti-bot handling, rate limiting, rotating identities over residential IPs, retries and pagination.
  3. Output — one dataset row per video, plus the downloaded media files in the key-value store.

What data you get

FieldDescription
url / idVideo permalink and ID
postedAtPublish time, ISO 8601
descriptionCaption text
playCountViews
likeCount / commentCount / shareCount / favoriteCountEngagement counts
durationVideo length in seconds
videoTemporaryUrlTikTok CDN link to the video (expires)
audioTemporaryUrlTikTok CDN link to the sound (expires; original sounds only)
videoStorageUrlPermanent key-value-store link to the .mp4 — set when downloadVideos is on
audioStorageUrlPermanent key-value-store link to the .mp3 — set when downloadAudio is on
music{ id, title, authorName, original }
author{ id, uniqueId, nickname, avatarUrl, verified, signature }

Where do the downloaded video and audio go?

With downloadVideos / downloadAudio on (both default to true), the files are written to the run's key-value store:

OptionFile savedField with the link
downloadVideos<user>-<videoId>.mp4videoStorageUrl
downloadAudio<user>-<videoId>.mp3audioStorageUrl

Each link looks like:

https://api.apify.com/v2/key-value-stores/<storeId>/records/<user>-<videoId>.mp4

Those links are permanent (they live as long as the run's storage) and need no auth for a public run. Browse every file under the run's Storage → Key-value store tab in the Apify Console, or list them via the API.

videoTemporaryUrl / audioTemporaryUrl are temporary source links that expire within hours — use them only if you're fetching immediately; otherwise keep the download options on and use the storage links.

The MP3: for original sounds you get the clean source track; for licensed / commercial tracks the audio is taken straight from the video. Either way you get one .mp3 per video.

Input parameters

ParameterTypeRequiredDefaultDescription
profileUrlsArrayYesTikTok profile URLs or @handles to scrape.
maxItemsIntegerNo3Stop after this many videos per profile. Raise it for a full export.
downloadVideosBooleanNotrueSave each video's .mp4 to the key-value store; adds videoStorageUrl.
downloadAudioBooleanNotrueSave each video's sound as an .mp3; adds audioStorageUrl.
proxyConfigurationObjectYesApify ResidentialRequired. TikTok flags datacenter IPs hard — a residential proxy is strongly recommended.
notificationWebhookUrlStringNoA Discord or Slack incoming webhook (or any endpoint) to notify when the run finishes.

Example output

{
"url": "https://www.tiktok.com/@travelusa_withme/video/7309500873443935278",
"id": "7309500873443935278",
"postedAt": "2026-08-10T14:32:00.000Z",
"description": "Grand Canyon at sunrise 🌄🇺🇸",
"playCount": 512340,
"likeCount": 48210,
"commentCount": 312,
"shareCount": 890,
"favoriteCount": 1204,
"duration": 27,
"videoTemporaryUrl": "https://v16-webapp-prime.tiktok.com/video/tos/...",
"videoStorageUrl": "https://api.apify.com/v2/key-value-stores/abc123/records/travelusa_withme-7309500873443935278.mp4",
"audioTemporaryUrl": "https://sf16-ies-music-va.tiktokcdn.com/obj/...",
"audioStorageUrl": "https://api.apify.com/v2/key-value-stores/abc123/records/travelusa_withme-7309500873443935278.mp3",
"music": {
"id": "7309500000000000000",
"title": "original sound",
"authorName": "travelusa_withme",
"original": true
},
"author": {
"id": "6841234567890123456",
"uniqueId": "travelusa_withme",
"nickname": "Travel USA 🇺🇸",
"avatarUrl": "https://p16-common-sign.tiktokcdn.com/...",
"verified": false,
"signature": "Traveling around the USA 🇺🇸"
}
}

You can download the dataset as JSON, CSV, Excel, or XML.

How to use the TikTok Scraper

  1. Open the Actor's Input tab.
  2. Paste one or more profileUrls (https://www.tiktok.com/@name or a bare @name).
  3. Set maxItems — how many recent videos per profile.
  4. Leave Download videos / Download audio on to store the media, or turn them off for metadata only.
  5. Press Start. Rows appear in the Dataset tab; the .mp4 / .mp3 files land in the Key-value store tab.

Usage examples

Metadata only, last 30 videos

{ "profileUrls": ["https://www.tiktok.com/@nasa"], "maxItems": 30, "downloadVideos": false, "downloadAudio": false }

Download every video + sound from a creator

{ "profileUrls": ["@zachking"], "maxItems": 50 }

Several profiles with a Slack ping on finish

{
"profileUrls": ["@nasa", "@spacex"],
"maxItems": 20,
"notificationWebhookUrl": "https://hooks.slack.com/services/..."
}

Pricing / cost estimation

This Actor runs on your Apify plan's compute units — no separate per-result charge. Collecting from a heavily protected platform like TikTok, plus downloading video and audio, uses more compute and storage than a lightweight scraper. To keep runs cheap: lower maxItems and turn off whichever download you don't need.

Tips for best results

  • Residential proxy, always. A good residential proxy pool is the single biggest reliability factor. If a run returns 0 videos, try a different proxy country.
  • Temporary links expire. Use videoStorageUrl / audioStorageUrl (or download promptly) for anything you keep.
  • maxItems is per profile, not per run.
  • A retried request is normal and clears on its own.

Limitations

  • Public profiles only. Private or nonexistent accounts return no data.
  • TikTok's anti-scraping posture changes often; a run may need a retry or two, and very large exports go faster with a bigger residential proxy pool.
  • videoTemporaryUrl / audioTemporaryUrl expire within hours.
  • A row is a snapshot at collection time; counts keep moving.
  • For licensed / commercial tracks the .mp3 is taken from the video rather than a standalone source.

FAQ

Can I download a TikTok video with this Actor? Yes. downloadVideos is on by default — each video's .mp4 is saved to the key-value store with a permanent link in videoStorageUrl.

Can I download the sound / music from a TikTok video? Yes. downloadAudio is on by default — you get an .mp3 per video in audioStorageUrl: the clean source track for original sounds, and the track taken from the video for licensed music.

Where are the downloaded files saved? In the run's key-value store, as <user>-<videoId>.mp4 / .mp3. The dataset rows carry the links, and you can browse or download them from the Storage tab in the Apify Console.

Do I need a TikTok account or login? No. It only uses what TikTok shows to logged-out visitors — no account, no cookies.

How many videos can it collect per profile? As many as maxItems. It keeps paging through the profile until it reaches your limit or the end of the profile.

Why did a run return 0 videos? Almost always a temporary block (try a different residential proxy country) or a private/typo'd handle. The run log says which.

How fresh is the data? Every run reads the live feed. Schedule the Actor to build an engagement history.

Support

Found a bug or a field that changed shape? Open an issue on the Actor's Issues tab in the Apify Console.

This Actor accesses only data TikTok serves publicly to logged-out visitors and does not use login credentials. You are responsible for how you use the Actor and its output, including compliance with TikTok's Terms of Service, copyright in the videos and music you download, and the data-protection laws that apply to you.