TikTok Video Scraper avatar

TikTok Video Scraper

Pricing

from $0.80 / 1,000 videos

Go to Apify Store
TikTok Video Scraper

TikTok Video Scraper

Get full TikTok video data from video links: plays, likes, comments, shares, saves, author, music, hashtags, and posting time. No login, no cookies. Pay per video.

Pricing

from $0.80 / 1,000 videos

Rating

0.0

(0)

Developer

electra bot

electra bot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Get full TikTok video data from video links — plays, likes, comments, shares, saves, author profile, music, hashtags, mentions, duration, and exact posting time — as JSON, CSV, or Excel.

No login, no cookies, no browser. Paste video URLs (or short links, or bare video IDs) and get structured records back.

Pay per result — you're charged per video delivered. Removed or private videos are reported and not charged.


What can I use it for?

  • Campaign & influencer tracking — monitor the exact play/like/comment/share/save counts of sponsored posts over time.
  • Competitor analysis — measure which of a competitor's videos actually perform, and what sounds and hashtags they ride.
  • Trend research — engagement ratios (saves-to-plays, shares-to-plays) are the virality signals; get them as numbers, not screenshots.
  • Social listening & AI — descriptions, hashtags, and engagement in a stable schema, ready for dashboards or models.
  • UGC rights & attribution — resolve any short link to its canonical video, author, and music credit.

Input

FieldRequiredDescription
Video URLs or IDsAny mix of full links (https://www.tiktok.com/@user/video/123…), short links (vm.tiktok.com/…, vt.tiktok.com/…), or bare numeric video IDs. Each video is one billable result.
Proxy configurationAutomatic by default: datacenter proxy first, escalating to RESIDENTIAL only if TikTok blocks it — you don't pay residential rates unless it's actually needed.

Output

One record per video:

{
"videoId": "7650013911164488991",
"url": "https://www.tiktok.com/@nba/video/7650013911164488991",
"description": "🏆 Knicks mount the largest comeback in NBA Finals History…",
"createTime": "2026-06-18T02:11:40+00:00",
"playCount": 27000000,
"likeCount": 1900000,
"commentCount": 8049,
"shareCount": 70900,
"saveCount": 86021,
"authorHandle": "nba",
"authorName": "NBA",
"authorVerified": true,
"authorFollowerCount": 27100000,
"authorTotalLikes": 1100000000,
"authorVideoCount": 22900,
"musicTitle": "original sound",
"musicIsOriginal": true,
"hashtags": ["nbafinals", "nba", "basketball", "knicks"],
"mentions": [],
"durationSeconds": 133,
"coverUrl": "https://p16-sign.tiktokcdn-us.com/…",
"categories": ["Sports News", "Sports"],
"language": "en",
"countryCreated": "US",
"isAd": false,
"isPinned": false,
"isAiGenerated": false,
"duetEnabled": true,
"stitchEnabled": false
}

All five engagement counters (including saves, which most tools skip) come as real integers — no "27M" strings to parse. Every video also carries its author's follower count, total likes, and video count (free influencer context, no extra request), TikTok's own content categories, and an AI-generated-content flag.

Reliability

  • Fail-loud contract — a changed TikTok page format raises a loud error instead of silently delivering hollow records.
  • Dead videos handled per-item — a removed, private, or region-locked video is reported with the exact reason (and not charged) while the rest of the batch continues.
  • Tiered proxy — datacenter first, automatic escalation to residential only when blocked.
  • Resumable — if a run is aborted or capped, resurrect it: already-delivered videos are never re-scraped or re-charged.

Usage from code

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("electrabot.info/tiktok-video-scraper").call(
run_input={"videoUrls": [
"https://www.tiktok.com/@nba/video/7650013911164488991",
"https://vm.tiktok.com/ZMabcdef/",
]}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["authorHandle"], item["playCount"], item["hashtags"])

FAQ

Why did one of my videos fail? TikTok reports removed, private, and region-locked videos with a status code; we surface the exact reason per video in the run's SUMMARY and don't charge for it. The rest of the batch continues.

Do you download the video files? No — this actor delivers the video's data (stats, author, music, hashtags), not the media file.

Can it scrape a whole profile or hashtag? This actor is deliberately focused on video URLs — that's what keeps it fast and cheap. Tell us in the Issues tab if you'd use a profile scraper.

Is scraping TikTok legal? This actor accesses only publicly available video pages. You are responsible for complying with applicable laws and TikTok's Terms of Service.


Disclaimer

This is an unofficial tool. It is not affiliated with, endorsed by, sponsored by, or in any way officially connected to TikTok or ByteDance Ltd. "TikTok" and related names, marks, and logos are trademarks of their respective owners and are used here for descriptive purposes only.

This actor accesses only publicly available information. You are responsible for ensuring your use complies with applicable laws, TikTok's Terms of Service, and applicable rate-limiting rules. Use it ethically and at your own risk.