TikTok Video Detail Scraper avatar

TikTok Video Detail Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
TikTok Video Detail Scraper

TikTok Video Detail Scraper

Scrape a single TikTok video - play/like/comment/share counts, author profile with follower stats, hashtags used, music, and direct video file URLs. No login, no API key.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

Axery

Axery

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Scrapes a single TikTok video — play/like/comment/share counts, author profile with follower stats, hashtags used, music, and direct video file URLs. No login, no API key.

Useful for tracking specific viral videos, influencer/creator research, and building a video-performance dataset.

What makes this different

Uses the one TikTok surface that actually renders without a signed request. TikTok's desktop web pages for this same data — the video page under @user/video/{id}, the hashtag page, the profile page — are gated behind an anti-bot layer that returns either a challenge page or a stripped-down placeholder with no items, confirmed directly against live pages rather than assumed. TikTok's own mobile web video page renders the full record server-side with no such gate. This Actor reads that page specifically, not the desktop one.

Author stats come bundled with the video, not just a username — follower count, total likes, following count, and video count travel with every row, so a single video result doubles as a creator-size signal without a second lookup.

Hashtags carry their own site-wide reach, not just a name — each hashtag in a video's caption comes with the total video count posted under it, useful for judging how competitive or niche a tag actually is.

What's honestly out of scope

No comment text. The video record's own comments field always comes back empty on this page — real comment content lives behind TikTok's signed /api/comment/list/ endpoint, which requires the X-Bogus/X-Gnarly request-signing scheme this Actor deliberately does not implement. comment_count is a real number; the comments themselves are not fetched.

No video list from a hashtag or profile. The equivalent profile page does carry full bio and stats fields, but its video grid loads separately after the page renders and isn't part of the server-rendered data this Actor reads. This Actor is scoped to one video per input, not a channel/hashtag browse.

Input

FieldTypeNotes
videosarrayFull TikTok video URLs or bare numeric video IDs.
proxyConfigurationobjectDefaults to Residential.

Output

{
"video_id": "tiktok.com:6718335390845095173",
"description": "Scramble up ur name & I'll try to guess it #foryoupage #petsoftiktok",
"play_count": 159000,
"like_count": 35100,
"comment_count": 5495,
"author_username": "scout2015",
"author_follower_count": 9000000,
"hashtags": [{"id": "88764338", "name": "foryoupage", "video_count": 4305265721}],
"play_url": "https://v16-webapp-prime.tiktok.com/video/tos/...",
"url": "https://www.tiktok.com/@scout2015/video/6718335390845095173"
}

A video that's removed, private, or an invalid ID fails with a clear message rather than returning a hollow row. Each run also writes a RUN_COVERAGE record to the key-value store with what was requested, what came back, and any per-video failures.

Local development

pip install -r requirements.txt
python test_local.py 6718335390845095173 --out sample_output.json
python test_local.py https://www.tiktok.com/@scout2015/video/6718335390845095173

sample_output.json is real output from a live run.