TikTok Video Scraper โ€“ Captions, Stats & Music avatar

TikTok Video Scraper โ€“ Captions, Stats & Music

Pricing

from $1.00 / 1,000 results

Go to Apify Store
TikTok Video Scraper โ€“ Captions, Stats & Music

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

ScrapingMonkey

Maintained by Community

Actor 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 glanceDetails
๐Ÿ“ฅ InputFull TikTok /@username/video/ID URLs
๐Ÿ“ค OutputCaption, views and engagement, creator, music, video URL, hashtags, and mentions
๐Ÿ” Login requiredNo
โšก ProcessingUp to 5 videos concurrently with automatic retries
๐Ÿ’พ DeliveryOne 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 ๐Ÿš€

  1. Copy a full public TikTok video link.
  2. Add it to inputList, with one URL per item.
  3. Start the Actor and open the resulting dataset.
  4. Filter by status and 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 groupIncluded data
PostID, canonical URL, type, description, creation date, and region
PerformanceViews, likes, comments, shares, and saves
CreatorIdentity, profile link, avatars, bio, account flags, and available counts
Video and musicPlayback and cover URLs, dimensions, duration, volume data, and sound metadata
Text and flagsHashtags, 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 โš™๏ธ

ParameterTypeRequiredRules
inputListarray of stringsYesAt 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 โ“

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.

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.