TikTok Video Scraper โ Captions, Stats & Music
Pricing
from $1.00 / 1,000 results
TikTok Video Scraper โ Captions, Stats & Music
Extract public TikTok video details from URLs. Get captions, engagement counts, creator information, music, media links, hashtags, and mentions in one row per video.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
ScrapingMonkey
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Turn a public TikTok video URL into its caption, engagement figures, creator details, music metadata, and media references. TikTok Video Scraper brings these fields together in one row, so a list of campaign links becomes a dataset you can compare or export.
No TikTok login or cookies are required. Each result retains the submitted link and a success or failed status.
| At a glance | Details |
|---|---|
| ๐ฅ Input | Full TikTok /@username/video/ID URLs |
| ๐ค Output | Caption, views and engagement, creator, music, video URL, hashtags, and mentions |
| ๐ Login required | No |
| โก Processing | Up to 5 videos concurrently with automatic retries |
| ๐พ Delivery | One dataset row per unique valid video ID; invalid links receive failed rows |
What the TikTok video scraper extracts ๐
The Actor checks that the requested post is a video and returns the details exposed with it. Use it when you already have video links and need their content and metrics together.
- Post ID, canonical URL, caption, creation time, and reported creation region
- Views, likes, comments, shares, and saves
- Creator identity, bio, avatar URLs, verification, and available audience counts
- Video playback URL, covers, dimensions, duration, and available volume measurements
- Music title, artist, cover images, playback URL, and original-sound flags
- Hashtags, mentions, and source-provided advertising, AI-content, and interaction flags
Media fields are URL references. The Actor does not save video files or generate transcripts.
How to scrape TikTok video details ๐
- Copy a full public TikTok video link.
- Add it to
inputList, with one URL per item. - Start the Actor and open the resulting dataset.
- Filter by
statusand export the fields needed for your report.
{"inputList": ["https://www.tiktok.com/@scout2015/video/6718335390845095173"]}
Use the full /video/ URL. Short share links, bare IDs, profile links, and /photo/ links are not accepted.
TikTok video data fields and output ๐ฆ
| Field group | Included data |
|---|---|
| Post | ID, canonical URL, type, description, creation date, and region |
| Performance | Views, likes, comments, shares, and saves |
| Creator | Identity, profile link, avatars, bio, account flags, and available counts |
| Video and music | Playback and cover URLs, dimensions, duration, volume data, and sound metadata |
| Text and flags | Hashtags, mentions, labels, and interaction or disclosure flags |
Complete illustrative success item; these fictional values show the output structure and are not a live result:
{"input": "https://www.tiktok.com/@trailjournal/video/7523456789012345678","status": "success","video.cover": "https://example.com/trail-video-cover.jpg","url": "https://www.tiktok.com/@trailjournal/video/7523456789012345678","id": "7523456789012345678","type": "video","description": "Morning trail with @trailguide #hiking","created_at": "2023-11-14T22:13:20Z","create_time": 1700000000,"location_created": "US","statistics.views": 42700,"statistics.likes": 2860,"statistics.comments": 64,"statistics.shares": 118,"statistics.saves": 390,"author.avatar_large": "https://example.com/trail-journal-large.jpg","author.avatar_medium": "https://example.com/trail-journal-medium.jpg","author.avatar_thumb": "https://example.com/trail-journal-thumb.jpg","author.username": "trailjournal","author.name": "Trail Journal","author.profile_url": "https://www.tiktok.com/@trailjournal","author.id": "7123456789012345678","author.sec_uid": "","author.bio": "Weekend walks and practical trail notes.","author.region": "US","author.is_verified": false,"author.is_private": false,"author.followers": 18400,"author.following": 126,"author.likes": 286000,"author.videos_count": 94,"author.friends_count": 28,"music.id": "7423456789012345678","music.title": "Morning Walk","music.author_name": "Trail Journal","music.author_username": "trailjournal","music.album": "","music.duration": 24,"music.is_original": true,"music.is_commerce": false,"music.is_author_artist": false,"music.cover_large": "https://example.com/morning-walk-large.jpg","music.cover_medium": "https://example.com/morning-walk-medium.jpg","music.cover_thumb": "https://example.com/morning-walk-thumb.jpg","music.play_url": "https://example.com/morning-walk.mp3","video.id": "7523456789012345678","video.play_url": "https://example.com/trail-video.mp4","video.download_url": "","video.width": 1080,"video.height": 1920,"video.duration": 24,"video.ratio": "1080p","video.format": "mp4","video.origin_cover": "https://example.com/trail-video-cover.jpg","video.dynamic_cover": "https://example.com/trail-video-preview.webp","video.bitrate": 0,"video.encoded_type": "","video.video_quality": "","video.volume_info.loudness": -15.5,"video.volume_info.peak": 0.5,"video.volume_info.loudness_range": 0.0,"video.bitrates": [],"images": [],"image_cover.url": "","image_cover.urls": [],"image_cover.width": 0,"image_cover.height": 0,"subtitles": [],"hashtags.id": ["54321"],"hashtags.name": ["hiking"],"hashtags.description": [""],"hashtags.profile_url": ["https://www.tiktok.com/tag/hiking"],"hashtags.cover_large": [""],"hashtags.cover_medium": [""],"hashtags.cover_thumb": [""],"mentions.user_id": ["7223456789012345678"],"mentions.sec_uid": [""],"mentions.username": ["trailguide"],"mentions.profile_url": ["https://www.tiktok.com/@trailguide"],"mentions.start": [19],"mentions.end": [30],"is_photo": false,"is_ad": false,"is_aigc": false,"aigc_label_type": 0,"is_original_item": true,"is_official_item": false,"is_secret": false,"for_friends": false,"duet_enabled": false,"stitch_enabled": false,"share_enabled": true,"comments_enabled": true,"comment_status": 0,"collected": false,"diversification_labels": ["Travel","Outdoors"],"suggested_words": ["Hiking"]}
The table and JSON use the same flat keys, such as statistics.views and author.username. Hashtag and mention columns contain ordered lists: values at the same position within each group belong together.
A success row can contain empty strings, 0, false, or empty lists where TikTok provides no value. These defaults do not prove that an omitted count or setting is zero or disabled. The current output keeps subtitles and video.bitrates empty, and video.download_url is an empty string. Failed rows retain input and status while the video-data fields are null.
Input requirements and coverage โ๏ธ
| Parameter | Type | Required | Rules |
|---|---|---|---|
inputList | array of strings | Yes | At least one full TikTok /@username/video/numeric-ID URL; no fixed batch-size maximum |
URLs must use HTTP or HTTPS on tiktok.com or one of its subdomains. A trailing slash and query parameters are allowed; the output URL is canonicalized. The username part must contain 1โ24 letters, digits, periods, or underscores.
Valid URLs are deduplicated by video ID, including different links to the same video. Invalid entries are saved individually as failed rows. There is no search, profile-feed collection, or pagination setting.
TikTok video use cases ๐ฏ
Campaign performance
Join submitted campaign links with views, likes, shares, and saves to prepare a consistent performance report.
Creative review
Compare captions, clip duration, cover images, and music across selected videos before organizing them into a content library.
Creator context
Keep the creator's public identity and available audience figures beside each video, then enrich selected accounts with the profile Actor.
Repeatable reporting
Schedule the same link list and compare successive exports to follow changes in the metrics TikTok exposes.
Pricing and billable video rows ๐ฐ
Check the Actor's Pricing tab for the current pricing model and rate.
Under dataset-item pricing, each saved success or failed row can be billable. Valid duplicate requests are processed once; invalid entries can each save a failed row. Automatic retries do not independently create extra dataset rows.
Hashtags, mentions, and music fields stay in the video row and do not create additional result rows.
TikTok Video Details Scraper API and integrations ๐
Use the Actor ID from the API tab as $ACTOR_ID and your Apify token as $APIFY_TOKEN.
curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"inputList":["https://www.tiktok.com/@scout2015/video/6718335390845095173"]}'
The request starts a run. Retrieve its dataset after completion, or connect an Apify schedule and webhook to repeat collection and trigger downstream work. Export to JSON, CSV, or Excel, or send selected fields to Google Sheets, Make, Zapier, or your own application.
Reliability and limits โ ๏ธ
The Actor processes up to five video requests concurrently and retries temporary request failures. A wrong post type, unavailable post, or request that cannot be completed produces a failed result while other valid items can continue.
Private, removed, region-restricted, or embed-disabled videos may be inaccessible even when a link opens in a logged-in browser. TikTok may omit creator counts or post flags. Playback and cover URLs can expire, so do not treat them as permanent asset storage.
Frequently asked questions โ
Can I submit a TikTok short link?
No. Open the share link and copy the full /@username/video/ID address before submitting it.
Does this scrape every video from a profile?
No. It retrieves the specific video URLs in inputList and does not crawl a profile feed.
Will I get a transcript or subtitles?
No transcript is generated, and the current subtitles field is an empty list.
Is this a video downloader?
It returns a playback URL when available. It does not download files or provide a separate download URL.
Why do some counts show zero?
TikTok may omit a metric from the accessible response. The output uses zero for missing numeric values, so a zero is not always a confirmed measured count.
Support, responsible use, and related actors ๐
For help with a result, share the run ID and a safe public example input through the Actor's support channel. Keep tokens and other credentials out of support messages.
Use public data and media within the permissions and obligations that apply to your project, including privacy and copyright requirements.