TikTok Video Scraper | Plays, Likes, Engagement | $0.35 / 1K avatar

TikTok Video Scraper | Plays, Likes, Engagement | $0.35 / 1K

Pricing

from $0.20 / 1,000 video scrapeds

Go to Apify Store
TikTok Video Scraper | Plays, Likes, Engagement | $0.35 / 1K

TikTok Video Scraper | Plays, Likes, Engagement | $0.35 / 1K

Get TikTok video data by URL, short link or ID: plays, likes, comments, shares, saves, engagement rate, hashtags, music and author, with flat CSV columns. No login, no API key. $0.35 per 1,000 videos on the Free plan, from $0.20 on Gold. No profile video lists or comments.

Pricing

from $0.20 / 1,000 video scrapeds

Rating

0.0

(0)

Developer

Hriday Rungta

Hriday Rungta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get TikTok video data without a login or an API key. Paste video links, short links or video IDs and get plays, likes, comments, shares, saves, an engagement rate, hashtags, music and author details in clean rows. Every row also has flat columns (authorUsername, authorFollowers, musicTitle, hashtagsText), so a CSV or Excel export needs no unnesting.

It reads TikTok's public video pages over plain HTTP: no browser, no login, no cookies. $0.35 per 1,000 videos on the Free plan, down to $0.20 on Gold (see Pricing), plus a $0.0002 start fee per run.

What it does not do: it cannot list the videos of a profile, and it cannot scrape comments, hashtag pages or search results. TikTok only serves those through signed requests, which this Actor does not forge. You give it the videos you care about; it returns the data for each one. See the limits below.

What can you do with TikTok video data?

  • Get TikTok video stats in bulk. Plays, likes, comments, shares and saves for every video in a campaign, a competitor study or a content audit.
  • Measure TikTok engagement rate per video. Each row carries engagementRate, calculated as (likes + comments + shares + saves) / plays, rounded to 4 decimals. It is empty when a video has no plays, so you never divide by zero in a sheet.
  • Check influencer and creator deliverables. Paste the links an influencer sent you and see real plays and engagement, plus the author's follower count in the same row.
  • Research hashtags and sounds on videos you already have. Every row lists hashtags, mentions, the sound title, the sound author and whether it is an original sound.
  • Resolve short links people send you. vm.tiktok.com, vt.tiktok.com and tiktok.com/t/ links are followed to the real video before it is read.
  • Track videos over time. Schedule the same list daily or weekly and compare datasets to see how plays and likes grow.
  • Feed a TikTok API alternative into your own tools. Use the Apify API, Google Sheets, Make, n8n or Zapier instead of building a TikTok integration.

Ready-made versions of these jobs are saved as tasks on this Actor's page.

What data do you get?

You give itYou get
TikTok video URLs, photo post URLs, short links or numeric video IDsOne row per video or photo post: caption, publish time, plays, likes, comments, shares, saves, engagement rate, duration, size, hashtags, mentions, author with follower count, sound details, ad and AI flags, cover and video links

Two output styles in the same row:

  • Nested objects for developers: author{...} and music{...}, plus the hashtags and mentions arrays.
  • Flat columns for spreadsheets: authorUsername, authorNickname, authorVerified, authorFollowers, authorUrl, musicTitle, musicAuthor, musicIsOriginalSound, hashtagsText, hashtagCount, mentionsText.

The dataset has a Spreadsheet view with flat columns only, an Overview view with the main stats, and an Inputs without data view for rows that failed.

Input

FieldTypeDescription
videoUrlslist (required)Video URLs (https://www.tiktok.com/@user/video/123...), photo post URLs (/photo/), short links (vm.tiktok.com/xxx, vt.tiktok.com/xxx, tiktok.com/t/xxx) or numeric video IDs, one per line
maxItemsnumberCost cap: at most this many items from your list are processed (default 100)
maxConcurrencynumberParallel requests, 1 to 10 (default 5)
useProxyFallbackbooleanRetry refused pages on fresh Apify datacenter proxy sessions (default on, no extra price)

Duplicates are merged and invalid entries are skipped with a warning.

Input example

{
"videoUrls": [
"https://www.tiktok.com/@dearmebeauty/video/6893431881816149250",
"6983617148866268422",
"https://www.tiktok.com/@burberry/photo/7475761007382629634"
],
"maxItems": 10
}

Output

Example row

This is a real row from a run on 2026-10-31 (links shortened):

{
"type": "video",
"id": "6893431881816149250",
"url": "https://www.tiktok.com/@dearmebeauty/video/6893431881816149250",
"text": "Wajib pakai SPF setiap hari ya guys dan biasakan double cleansing #cleansingbalm #dearmebeauty #1111shopeehaul#voiceeffects",
"createdAt": "2020-11-10T09:56:24.000Z",
"plays": 9700000,
"likes": 370900,
"comments": 1049,
"shares": 879,
"saves": 9010,
"engagementRate": 0.0394,
"durationSec": 37,
"width": 540,
"height": 960,
"coverUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-...",
"videoUrl": "https://v16-webapp-prime.us.tiktok.com/video/...",
"imageUrls": [],
"isPhotoPost": false,
"hashtags": ["cleansingbalm", "dearmebeauty", "1111shopeehaul", "voiceeffects"],
"hashtagsText": "cleansingbalm, dearmebeauty, 1111shopeehaul, voiceeffects",
"hashtagCount": 4,
"mentions": [],
"mentionsText": "",
"authorUsername": "dearmebeauty",
"authorNickname": "Dear Me Beauty",
"authorVerified": true,
"authorFollowers": 1600000,
"authorUrl": "https://www.tiktok.com/@dearmebeauty",
"musicTitle": "original sound - Karrree",
"musicAuthor": "karrre",
"musicIsOriginalSound": true,
"author": { "username": "dearmebeauty", "nickname": "Dear Me Beauty", "verified": true, "followers": 1600000 },
"music": { "title": "original sound - Karrree", "author": "karrre", "isOriginalSound": true, "durationSec": 41 },
"isAd": true,
"isAiGenerated": false,
"commentsAllowed": true,
"locationCreated": "ID",
"language": "id",
"categories": ["Beauty", "Beauty & Care", "Beauty & Style"],
"input": "https://www.tiktok.com/@dearmebeauty/video/6893431881816149250",
"status": "ok",
"scrapedAt": "2026-10-31T15:42:05.187Z"
}

Rows without data

An input that returns no data still gets a row, and it is free: status is not-found (deleted or never existed), private, blocked (TikTok refused the request) or short-link-unresolved (the short link does not lead to a video any more). The input field shows which line it came from.

Photo posts

Photo posts (slideshows) come back as type: "photo" with imageUrls and no videoUrl.

Pricing

Pay per event, no subscription. The price per video depends on your Apify plan:

PlanPer 1,000 videosPer video
Free$0.35$0.00035
Bronze$0.30$0.0003
Silver$0.25$0.00025
Gold, Platinum, Diamond$0.20$0.0002

Plus a one-time start fee of $0.0002 per run, the same on every plan. You are only charged for rows that return data. Private, deleted, not-found, unresolvable and blocked rows are free.

Worked examples (Free plan price, start fee included):

  • 100 videos: $0.0002 + 100 x $0.00035 = $0.0352
  • 1,000 videos: $0.3502
  • 10,000 videos: $3.50 (about $2.00 on Gold)

maxItems caps the number of items processed, and Apify's own maximum cost per run setting stops the Actor the moment your budget is used up. The last video you paid for is always delivered.

For comparison, the other TikTok video Actor with the most users on the Apify Store, clockworks/tiktok-video-scraper, lists $3.00 per 1,000 videos on the Free plan and $1.00 on Gold (Store prices on 2026-10-31, and it includes things this Actor does not, such as optional downloads and transcripts).

How to scrape TikTok video data

  1. Open the Actor and paste video links, short links or IDs into Video URLs, short links or IDs, one per line.
  2. Set Max items as a cost cap and click Start.
  3. When the run finishes, open the Spreadsheet view to check the flat columns.
  4. Download the dataset as CSV, Excel or JSON, or read it over the API.
  5. To track growth, create an Apify Schedule with the same input and compare datasets from each run.

Integrations and scheduling

  • Apify Schedules: run the same list every day or week and compare plays, likes and saves between runs.
  • Google Sheets, Make, n8n and Zapier: send every finished run to your tools through a webhook or the Apify integrations. The flat columns drop straight into a sheet.
  • API: start runs and read the dataset with the Apify API or the Apify client for JavaScript and Python.
  • AI agents: call it from AI agents and assistants through Apify's MCP server.

There is no built-in "only new videos" mode. Each run reads exactly the list you give it.

FAQ

Is this a TikTok API alternative?

For reading the public stats of videos you already have a link to, yes: you do not need a TikTok developer app or approval. It is not a full replacement. TikTok's official APIs are built around your own account's content or approved research access, and as far as we know do not return stats for arbitrary public videos. This Actor cannot post, cannot read private data and cannot list a profile's videos.

Can I scrape all videos of a TikTok profile?

No. TikTok only serves a profile's video list through signed API calls, and this Actor does not forge signatures. Give it the video URLs you need. For profile numbers (followers, likes, bio), see TikTok Profile Scraper.

Can I scrape comments, hashtag pages or search results?

No. They need signed or logged-in requests. Use a dedicated Actor such as TikTok Comments Scraper by clockworks or TikTok Hashtag Scraper by clockworks.

How is the TikTok engagement rate calculated?

engagementRate = (likes + comments + shares + saves) / plays, rounded to 4 decimals, so 0.0394 means 3.94%. It is empty when plays is 0 or missing. Other tools use different formulas (for example by followers instead of plays), so compare like with like.

vm.tiktok.com, vt.tiktok.com and tiktok.com/t/ links are followed to the real video page (up to 5 redirects) before the video is read. Resolving a link is free. In our tests, links that TikTok still honours resolved correctly on the direct route and through the proxy, but the test set was small (a handful of public links). Old links expire: TikTok then redirects them to its home page, and you get a free short-link-unresolved row. If you have the full URL, use it.

Can I download TikTok videos?

This Actor returns data about videos, not video files. The videoUrl field is the link TikTok shows on the public page. It expires within hours and is not offered as a download feature.

Why did some rows come back as not-found or private?

The video was deleted, never existed, or is private. These rows are free. If most of your list is invalid, the run stops early instead of wasting your time.

Will TikTok block it?

TikTok can change or restrict access at any time. The Actor fetches directly first and retries refused pages on fresh proxy sessions. If TikTok refuses 12 requests in a row it stops, and nothing is charged for those.

Are the numbers exact?

They are what TikTok shows at the moment of the request, so they move between runs. Large play counts can be rounded by TikTok.

It reads public pages only: no login and no private data. You are responsible for using the data in line with TikTok's Terms of Service and privacy laws such as GDPR. Do not use it to profile private individuals.

Limits, honestly

  • No list of a profile's videos, no comments, no hashtag or search pages, no follower lists.
  • No videos by keyword or discovery: you must already have the link, short link or ID.
  • Numbers for very new videos change quickly, so schedule repeat runs if you track growth.
  • Short links were tested on a small sample only.
  • Private accounts and deleted videos return free status rows with no data.