TikTok Profile & Video Scraper
Pricing
from $2.90 / 1,000 results
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
Actor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
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 codeuv run ruff format .# Lint codeuv run ruff check .
Running the Actor
- Create a free Apify account.
- Open TikTok Profile & Video Scraper.
- Add usernames and/or video URLs — use any combination.
- Optionally set a proxy URL to avoid rate limiting.
- Click Save & Start and wait for the data to be extracted.
- 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.
| Field | Type | Description |
|---|---|---|
usernames | string[] | TikTok usernames or profile URLs (e.g. tiktok or https://www.tiktok.com/@tiktok) |
videoUrls | string[] | TikTok video URLs (e.g. https://www.tiktok.com/@tiktok/video/7622051063377546527) |
proxy | string | Optional 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.
- Python: Use the
apify-clientPyPI package - Node.js: Use the
apify-clientNPM package
❓ 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 responseCOOKIES_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 requestscookies = {"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_urlrequires sending cookies from the response as headers — TikTok's CDN requires this to accept the request. Use thecookiesfield 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.
Is it legal to scrape TikTok?
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.