TikTok Profile & Video Scraper avatar

TikTok Profile & Video Scraper

Pricing

from $2.90 / 1,000 results

Go to Apify Store
TikTok Profile & Video Scraper

TikTok Profile & Video Scraper

Scrape Tiktok profiles and videos. Get clean JSON with profile stats, media URLs, captions, comments, tagged users, and more.

Pricing

from $2.90 / 1,000 results

Rating

0.0

(0)

Developer

Headless Agent

Headless Agent

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

2 days ago

Last modified

Share

Scrape TikTok user profiles and videos — no API key or login required. Get clean, formatted JSON with only the important fields. Supports usernames and video URLs as input.

🤔 What can TikTok Profile & Video Scraper do?

This Actor lets you extract public data from TikTok profiles and videos in one place. Just provide usernames or video URLs and get structured results:

👤 Scrape any public TikTok profile — bio, followers, following, video count, verification status, and more

🎬 Extract video data — description, download URLs (with & without watermark), stats, music info, hashtags, and more

📊 Get full statistics — plays, likes, comments, shares, collects, reposts

🎵 Get music/audio info — title, artist, album, duration, cover art

🏷️ Get hashtag data — ID, title, description, cover image

🖼️ Best quality media — automatically picks highest resolution video from bitrate info

🎞️ Multiple bitrate options — get all available quality/resolution variants

📦 Download results in JSON, CSV, XML, or Excel from the Apify Dataset

🦾 Integrate via API, webhooks, SDKs (Python & Node.js), or connect with tools like Zapier, n8n, Make, and more

✅ What data can I scrape from TikTok?

From profiles:

  • 👤 Username, nickname, bio, bio link
  • 🌍 Region, language
  • 📊 Followers count, following count, likes count, video count
  • ✅ Verification status
  • 🔒 Private account status
  • 🖼️ Profile picture URLs (thumbnail, medium, large)
  • 📅 Account creation timestamp

From videos:

  • 🆔 Video ID, description, timestamp
  • 📥 Download URLs (with & without watermark)
  • 📊 Stats — plays, likes, comments, shares, collects, reposts
  • 🎞️ Video metadata — duration, ratio, cover images
  • 🎵 Music/audio info — title, artist, album, duration, cover
  • 🏷️ Hashtags with full details
  • 👤 Author info with stats

🔧 How to scrape data from TikTok

Development

# Install dependencies (including dev tools)
uv sync --group dev
# Format code
uv run ruff format .
# Lint code
uv run ruff check .

Running the Actor

  1. Create a free Apify account.
  2. Open TikTok Profile & Video Scraper.
  3. Add usernames and/or video URLs — use any combination.
  4. Optionally set a proxy URL to avoid rate limiting.
  5. Click Save & Start and wait for the data to be extracted.
  6. Download your data in JSON, CSV, XML, Excel, or access it via API.

⬇️ Input

All fields are optional, but at least one must be provided. You can use them independently or together in a single run.

FieldTypeDescription
usernamesstring[]TikTok usernames or profile URLs (e.g. tiktok or https://www.tiktok.com/@tiktok)
videoUrlsstring[]TikTok video URLs (e.g. https://www.tiktok.com/@tiktok/video/7622051063377546527)
proxystringOptional proxy URL (http:// or socks5:// format)

Example input

{
"usernames": ["tiktok"],
"videoUrls": [
"https://www.tiktok.com/@tiktok/video/7622051063377546527",
"https://www.tiktok.com/@bellapoarch/video/7611953351915228446"
],
"proxy": "http://user:pass@host:port"
}

⬆️ Output

Results are pushed to the Apify Dataset. Each item has a type field ("user" or "video") so you can easily filter and process them. You can export data in JSON, CSV, XML, Excel, or access it programmatically via the Apify API.

👤 User profile data sample

{
"type": "user",
"id": "5831967",
"sec_uid": "MS4wLjABAAAA...",
"username": "charlidamelio",
"nickname": "charli d'amelio",
"avatar": "https://p16-sign-va.tiktokcdn.com/...",
"avatar_medium": "https://p16-sign-va.tiktokcdn.com/...",
"avatar_large": "https://p16-sign-va.tiktokcdn.com/...",
"bio": "don't worry i don't get the hype either",
"bio_link": "https://www.charlidamelio.com",
"region": "US",
"language": "en",
"created_at": 1560000000,
"verified": true,
"private": false,
"stats": {
"followers": "155000000",
"following": "1500",
"likes": "11500000000",
"videos": "2500"
}
}

🎬 Video data sample

{
"type": "video",
"url": "https://www.tiktok.com/@user/video/7590714394581994770",
"id": "7590714394581994770",
"desc": "caption video #hashtag",
"created_at": 1767350925,
"download_url": "https://v16-webapp-prime.tiktok.com/...",
"download_url_watermark": "https://v16-webapp-prime.tiktok.com/...",
"cookies": {
"msToken": "abc123...",
"tt_chain_token": "U1NMyXsPdRh7Po/DFbOM1Q==",
"tt_csrf_token": "t4DToHqI-91S6sZFk0378X0B8ySN-GFQ3-WE",
"ttwid": "1|xyz..."
},
"author": {
"id": "123456",
"sec_uid": "MS4wLjABAAAA...",
"username": "user",
"nickname": "User Name",
"verified": false,
"avatar": "https://...",
"followers": "80000",
"following": "27",
"likes": "4300000",
"videos": "231"
},
"stats": {
"plays": "9800000",
"likes": "103500",
"comments": "285",
"shares": "37700",
"collects": "62702",
"reposts": "0"
},
"video": {
"bitrates": [
{
"bitrate": 508441,
"fps": 30,
"quality_type": 2,
"gear_name": "adapt_lowest_1080_1",
"codec": "h265_hvc1",
"format": "mp4",
"width": 1080,
"height": 1920,
"data_size": "454547",
"aweme_url": "https://www.tiktok.com/aweme/v1/play/?...",
"cdn_urls": ["https://v16-webapp-prime.tiktok.com/...", "https://v19-webapp-prime.tiktok.com/..."]
}
],
"duration": 15,
"ratio": "720p",
"cover": "https://...",
"dynamic_cover": "https://...",
"origin_cover": "https://..."
},
"music": {
"id": "7123456789",
"title": "original sound",
"author": "user",
"album": null,
"url": "https://...",
"cover": "https://...",
"duration": 15
},
"hashtags": [
{
"id": "123456",
"title": "hashtag",
"desc": "hashtag description",
"cover": "https://..."
}
]
}

🔗 Integrations

You can connect TikTok Profile & Video Scraper with almost any cloud service or web app through Apify integrations. Connect with Zapier, n8n, Make, Slack, Google Sheets, Google Drive, Airbyte, GitHub, and many more.

You can also use webhooks to trigger actions whenever a run finishes — for example, getting a notification or automatically processing the scraped data.

🦾 Using the Apify API

The Apify API gives you programmatic access to TikTok Profile & Video Scraper. You can start runs, fetch datasets, monitor execution, and integrate the scraper into your own workflows.

❓ FAQ

How do I download videos using the cookies?

TikTok's CDN requires cookies from the scrape response to accept download requests. Each video result includes a cookies field with the necessary cookies.

Using curl

# Set your cookies from the response
COOKIES_STR="msToken=${msToken}; tt_chain_token=${tt_chain_token}; tt_csrf_token=${tt_csrf_token}; ttwid=${ttwid}"
OUTPUT="video.mp4"
DOWNLOAD_URL="https://v16-webapp-prime.tiktok.com/..."
curl -L \
--http2 \
-H "Referer: https://www.tiktok.com/" \
-H "Cookie: ${COOKIES_STR}" \
-o "${OUTPUT}" \
"${DOWNLOAD_URL}"

Using Python

import requests
cookies = {
"msToken": "abc123...",
"tt_chain_token": "U1NMyXsPdRh7Po/DFbOM1Q==",
"tt_csrf_token": "t4DToHqI-91S6sZFk0378X0B8ySN-GFQ3-WE",
"ttwid": "1|xyz..."
}
download_url = "https://v16-webapp-prime.tiktok.com/..."
response = requests.get(
download_url,
cookies=cookies,
headers={"Referer": "https://www.tiktok.com/"},
stream=True
)
with open("video.mp4", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
print("Download complete!")

Note: Cookies are temporary and may expire. If downloads fail, re-run the scraper to get fresh cookies.

Can I scrape multiple profiles and videos in one run?

Yes. Both input fields (usernames, videoUrls) accept arrays. You can provide multiple items in each field, and even use both fields together in a single run. Each result will have a type field so you can tell them apart.

What format is the created_at / created_at timestamp?

All timestamps are Unix timestamps (seconds since epoch). You can convert them to a human-readable date using any standard date library or online converter.

What's the difference between download_url and download_url_watermark?

  • download_url — video without watermark (highest quality CDN URL)
  • download_url_watermark — video with TikTok watermark

Download using download_url requires sending cookies from the response as headers — TikTok's CDN requires this to accept the request. Use the cookies field from the video response (see "How do I download videos using the cookies?" above).

Does the scraper work with private accounts?

No. The scraper can only extract data from public TikTok accounts. Private profiles will not return profile data, and videos from private accounts are not accessible.

Can I use a proxy?

Yes. The optional proxy input field accepts HTTP and SOCKS5 proxy URLs. This is useful to avoid rate limiting or IP blocks when scraping at higher volumes.

This scraper only extracts publicly available data. It does not access private accounts, login credentials, or any data behind authentication. However, scraped results could contain personal data protected by GDPR and other regulations. Ensure you have a legitimate reason for scraping and consult legal counsel if unsure. See also Apify's blog post on the legality of web scraping.