TikTok Profile Videos Scraper avatar
TikTok Profile Videos Scraper

Pricing

$1.50 / 1,000 results

Go to Apify Store
TikTok Profile Videos Scraper

TikTok Profile Videos Scraper

Developed by

Socia Vault

Socia Vault

Maintained by Community

Extract videos from TikTok profiles. Get video details, views, likes, comments, shares, and video URLs. Perfect for content analysis, competitor research, and trend monitoring.

0.0 (0)

Pricing

$1.50 / 1,000 results

1

2

2

Last modified

18 hours ago

TikTok Videos Scraper

Extract comprehensive TikTok video data including statistics, engagement metrics, author info, and video URLs. Perfect for content analysis, trend research, and competitor monitoring.

Features

No TikTok login required - Scrape public videos without authentication
Bulk scraping - Process multiple profiles in one run
Complete video data - Views, likes, comments, video URLs, author info, and more
Multiple video qualities - Get all available video quality URLs
Fast & reliable - Built on enterprise-grade infrastructure
Affordable pricing - Pay only for what you use
Easy to use - Simple input, JSON/CSV output

What data can you extract?

For each TikTok profile, you'll get:

  • 🎥 Video Metadata: Video ID, description, duration, dimensions, timestamps
  • 📊 Engagement Stats: Views, likes, comments, shares, downloads
  • 🎬 Video URLs: Multiple quality options (1080p, 720p, 540p) with play/download links
  • 🖼️ Cover Images: Static, animated, and dynamic cover images
  • 👤 Author Info: Username, nickname, follower count, verified status, bio
  • 📅 Timestamps: Creation time in both Unix and ISO 8601 formats
  • 🔗 Direct Links: TikTok video URLs

Input

The actor accepts the following input parameters:

{
"handles": [
"khaby.lame",
"@charlidamelio",
"https://www.tiktok.com/@stoolpresidente",
"https://tiktok.com/@bellapoarch"
],
"maxVideosPerProfile": 20
}

Input Parameters

ParameterTypeRequiredDescription
handlesArrayYesList of TikTok handles/URLs to scrape videos from. Supports multiple formats (see below)
maxVideosPerProfileIntegerNoNumber of videos to fetch per profile (default: 20, minimum: 20). Backend handles pagination automatically

Supported Handle Formats

The actor intelligently handles multiple input formats:

Plain handle: khaby.lame
With @ symbol: @khaby.lame
Full TikTok URL: https://www.tiktok.com/@khaby.lame
Short TikTok URL: https://tiktok.com/@khaby.lame
With URL parameters: https://www.tiktok.com/@khaby.lame?lang=en

All formats are automatically cleaned and processed correctly!

Output

The actor stores results in the default dataset. You can export data in JSON, CSV, Excel, or other formats.

Example Output

{
"handle": "stoolpresidente",
"success": true,
"videoCount": 20,
"videos": [
{
"aweme_id": "7560430254234373407",
"desc": "DRAKE MAYE AND THE PATRIOTS CONTINUE TO PUT THE REST OF THE LEAGUE ON NOTICE THAT THE PATS ARE BACK! #patriots",
"desc_language": "en",
"region": "US",
"statistics": {
"aweme_id": "7560430254234373407",
"collect_count": 498,
"comment_count": 418,
"digg_count": 23489,
"download_count": 68,
"play_count": 269755,
"share_count": 671,
"whatsapp_share_count": 1
},
"video": {
"duration": 91626,
"height": 1024,
"width": 576,
"ratio": "540p",
"cover": {
"uri": "tos-useast8-p-0068-tx2/o8AdFAXsDQHqMYgtALFAVoRSSCffoAEIEUAWE7",
"url_list": [
"https://p16-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/...",
"https://p19-common-sign.tiktokcdn-us.com/tos-useast8-p-0068-tx2/..."
]
},
"play_addr": {
"data_size": 14052167,
"uri": "v15044gf0000d3lhehnog65hobq6nuo0",
"url_list": [
"https://v19.tiktokcdn-us.com/...",
"https://v16m.tiktokcdn-us.com/..."
]
},
"download_addr": {
"data_size": 14726870,
"url_list": [
"https://v19.tiktokcdn-us.com/...",
"https://v16m.tiktokcdn-us.com/..."
]
},
"bit_rate": [
{
"bit_rate": 1511791,
"gear_name": "adapt_lowest_1080_1",
"quality_type": 2,
"fps": 30,
"play_addr": {
"data_size": 17314925,
"height": 1920,
"width": 1080,
"url_list": ["https://..."]
}
}
]
},
"author": {
"uid": "6659752019493208069",
"unique_id": "stoolpresidente",
"nickname": "Dave Portnoy",
"signature": "El Presidente/Barstool Sports Founder.",
"avatar_thumb": {
"url_list": ["https://..."]
},
"follower_count": 4502190,
"following_count": 84,
"aweme_count": 2237,
"total_favorited": 213817281,
"verified": true
},
"create_time": 1760299860,
"create_time_utc": "2025-10-12T20:11:00.000Z",
"url": "https://www.tiktok.com/@stoolpresidente/video/7560430254234373407"
}
]
}

Output Fields

Main Fields

FieldTypeDescription
handleStringTikTok handle you searched for
successBooleanWhether the scrape was successful
videoCountIntegerNumber of videos retrieved

Video Object Fields

FieldTypeDescription
aweme_idStringUnique video ID
descStringVideo caption/description
desc_languageStringLanguage of description
regionStringRegion code (e.g., "US")
create_timeIntegerUnix timestamp of creation
create_time_utcStringISO 8601 timestamp
urlStringDirect TikTok video URL

Statistics Object

FieldTypeDescription
statistics.play_countIntegerTotal video views
statistics.digg_countIntegerTotal likes
statistics.comment_countIntegerTotal comments
statistics.share_countIntegerTotal shares
statistics.download_countIntegerTotal downloads
statistics.collect_countIntegerTimes saved/favorited

Video Metadata Object

FieldTypeDescription
video.durationIntegerVideo duration in milliseconds
video.heightIntegerVideo height in pixels
video.widthIntegerVideo width in pixels
video.ratioStringVideo quality/ratio (e.g., "540p")
video.coverObjectCover image URLs (multiple formats)
video.play_addrObjectVideo playback URLs and metadata
video.download_addrObjectVideo download URLs (watermark-free)
video.bit_rateArrayMultiple quality options with URLs

Note: Each video includes multiple quality options (1080p, 720p, 540p, etc.) with different bitrates. The bit_rate array contains all available qualities with their respective playback URLs.

Author Object

FieldTypeDescription
author.uidStringUnique author ID
author.unique_idStringAuthor username/handle
author.nicknameStringAuthor display name
author.signatureStringAuthor bio
author.avatar_thumbObjectProfile picture URLs
author.follower_countIntegerTotal followers
author.following_countIntegerTotal following
author.aweme_countIntegerTotal videos posted
author.total_favoritedIntegerTotal likes received
author.verifiedBooleanVerified badge status

Error Response Format

When a profile fails to scrape, you'll receive an error object:

{
"handle": "invalid_handle",
"success": false,
"error": "Account deactivated or does not exist"
}

Note: Failed profiles are still included in your dataset so you can see which handles had issues.

Use Cases

📈 Social Media Analytics

  • Track video performance over time
  • Analyze engagement patterns
  • Identify viral content trends

🔍 Competitor Research

  • Monitor competitor content strategies
  • Analyze successful content formats
  • Track posting schedules and frequency

🎯 Influencer Marketing

  • Evaluate influencer content quality
  • Assess engagement rates per video
  • Identify partnership opportunities

📊 Content Strategy

  • Discover trending topics in your niche
  • Analyze successful video formats
  • Optimize posting times based on data

🤖 Data Analysis & ML

  • Build datasets for machine learning
  • Train content recommendation systems
  • Develop engagement prediction models

Example: Scraping 100 TikTok profiles = 100 credits (regardless of videos per profile)

Error Handling

The actor handles errors gracefully:

Successful Response:

{
"handle": "username",
"success": true,
"videoCount": 50,
"videos": [...]
}

Error Response:

{
"handle": "invalid_user",
"success": false,
"error": "Account deactivated or does not exist"
}

Common Errors:

  • "Account deactivated or does not exist" - Profile was deleted/banned
  • "API request failed" - Temporary API issue (retry recommended)
  • "Invalid handle format" - Check handle formatting

🔗 Related Actors:


Built with ❤️ by SociaVault