TikTok Video Scraper avatar

TikTok Video Scraper

Pricing

$5.00 / 1,000 results

Go to Apify Store
TikTok Video Scraper

TikTok Video Scraper

Scrape TikTok video data from URLs: text, author, followers, plays, likes, comments, shares, saves, hashtags, music and subtitles. Optional MP4, cover and slideshow downloads. No login or cookies needed.

Pricing

$5.00 / 1,000 results

Rating

0.0

(0)

Developer

Muhammad Noman Riaz

Muhammad Noman Riaz

Maintained by Community

Actor stats

1

Bookmarked

25

Total users

1

Monthly active users

13 days ago

Last modified

Share

Get the text, author, stats, hashtags, music and subtitles of any public TikTok video from its URL. Optionally save the MP4, the cover image, slideshow photos and subtitle files. No TikTok account, login or cookies needed.

What does TikTok Video Scraper do?

TikTok Video Scraper takes a list of public TikTok video URLs and returns one structured result per video. Each result holds the caption text, language, creation date, country of upload, and the counts for plays, likes, comments, shares and saves. It also includes the author's username, nickname, verification badge, follower and following counts, total likes and video count, plus the music title, artist and audio link. Hashtags and mentioned accounts come out as clean lists, and subtitle tracks are listed with their language. If you tick the download options, the actor saves the MP4 video, the cover image, slideshow photos and WebVTT subtitles in the run's key-value store and links them in the result. It reads the same public page that a logged-out visitor sees, so you never share a TikTok account. Deleted or private videos are skipped and not charged.

How to use it

  1. Paste one or more TikTok video URLs into TikTok video URLs.
  2. Tick any downloads you want.
  3. Click Start and download the results as JSON, CSV, Excel or HTML, or read them through the Apify API.

Input

FieldTypeDefaultWhat it does
postURLsarray of stringsrequiredPublic TikTok video or photo post URLs
shouldDownloadVideosbooleanfalseSave each video as an MP4 in the key-value store
shouldDownloadCoversbooleanfalseSave each cover image as a JPEG
shouldDownloadSlideshowImagesbooleanfalseSave every image of a photo slideshow post
shouldDownloadSubtitlesbooleanfalseSave subtitles as WebVTT files when TikTok has them
maxWorkersinteger2How many videos are scraped at the same time
proxyobjectApify residentialProxy settings. Each attempt uses its own proxy session

Input example

{
"postURLs": [
"https://www.tiktok.com/@apifytech/video/7398101551744552225"
],
"shouldDownloadVideos": true,
"shouldDownloadCovers": true,
"shouldDownloadSlideshowImages": false,
"shouldDownloadSubtitles": true,
"maxWorkers": 2,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Output example

This is a real result from a test run on 17 October 2026. Long CDN links are shortened with ....

{
"id": "7398101551744552225",
"text": "📣 Yes, you can scrape job listings #data in a minute!! #webscraping #techtiktok #job #automation",
"textLanguage": "en",
"createTime": 1722504752,
"createTimeISO": "2024-08-01T09:32:32.000Z",
"locationCreated": "CZ",
"isAd": false,
"authorMeta": {
"id": "7353570794285417504",
"name": "apifytech",
"profileUrl": "https://www.tiktok.com/@apifytech",
"nickName": "Apify",
"verified": false,
"signature": "Your AI needs tools. We've got thousands. 🚀",
"bioLink": null,
"originalAvatarUrl": "https://p16-common-sign.tiktokcdn.com/...",
"avatar": "https://p16-common-sign.tiktokcdn.com/...",
"privateAccount": false,
"roomId": "",
"ttSeller": false,
"following": 1,
"friends": 0,
"fans": 3585,
"heart": 4129,
"video": 58,
"digg": 66,
"commerceUserInfo": { "commerceUser": false }
},
"musicMeta": {
"musicName": "original sound",
"musicAuthor": "Apify",
"musicOriginal": true,
"playUrl": "https://v16m.tiktokcdn.com/...",
"coverMediumUrl": "https://p16-common-sign.tiktokcdn.com/...",
"originalCoverMediumUrl": "https://p16-common-sign.tiktokcdn.com/...",
"musicId": "7398101561353718560"
},
"webVideoUrl": "https://www.tiktok.com/@apifytech/video/7398101551744552225",
"mediaUrls": ["https://api.apify.com/v2/key-value-stores/<storeId>/records/video_7398101551744552225.mp4"],
"videoMeta": {
"height": 1024,
"width": 576,
"duration": 23,
"coverUrl": "https://p16-common-sign.tiktokcdn.com/...",
"originalCoverUrl": "https://p16-common-sign.tiktokcdn.com/...",
"definition": "540p",
"format": "mp4",
"subtitleLinks": [
{ "language": "eng-US", "downloadLink": "https://v16-webapp.tiktok.com/...", "source": "ASR" }
],
"downloadAddr": "https://api.apify.com/v2/key-value-stores/<storeId>/records/video_7398101551744552225.mp4"
},
"diggCount": 21,
"shareCount": 1,
"playCount": 592,
"collectCount": 1,
"commentCount": 0,
"mentions": [],
"detailedMentions": [],
"hashtags": [
{ "id": "400574", "name": "data", "title": "", "cover": "" },
{ "id": "1622560817599509", "name": "webscraping", "title": "", "cover": "" },
{ "id": "1622378541111301", "name": "techtiktok", "title": "", "cover": "" },
{ "id": "88965", "name": "job", "title": "", "cover": "" },
{ "id": "8617580", "name": "automation", "title": "", "cover": "" }
],
"effectStickers": [],
"isSlideshow": false,
"isPinned": false,
"isSponsored": false,
"submittedVideoUrl": "https://www.tiktok.com/@apifytech/video/7398101551744552225",
"downloadedFiles": {
"video": "https://api.apify.com/v2/key-value-stores/<storeId>/records/video_7398101551744552225.mp4",
"cover": "https://api.apify.com/v2/key-value-stores/<storeId>/records/cover_7398101551744552225.jpg",
"subtitles": [
{ "language": "eng-US", "downloadLink": "https://api.apify.com/v2/key-value-stores/<storeId>/records/subtitles_7398101551744552225_eng-US.vtt" }
]
}
}

downloadedFiles appears only when you ask for a download. If a download you asked for fails, its field is null and the run log says why. The rest of the result is still complete.

Pricing

$5 per 1,000 videos. You pay for one result per video URL. Videos that are deleted, private or could not be scraped are skipped and not charged. They are listed with the reason in the FAILED_ITEMS record of the run's key-value store.

FAQ

What happens with private or deleted videos?

The actor skips them. TikTok reports these videos as unavailable, so there is no data to return. Each one is listed in FAILED_ITEMS with the reason, for example Video unavailable (10204: item doesn't exist).

Are failed videos charged?

No. A result is saved and charged only when it has a real video ID, author and creation time. Skipped and failed videos cost nothing.

Files you download with the actor are stored in your Apify key-value store and stay there for as long as your storage retention allows. The TikTok links inside the result, such as playUrl, coverUrl and subtitle downloadLink, are signed by TikTok and expire, in our tests after about two days. Tick the download options if you need lasting copies.

Do I need cookies or a TikTok account?

No. The actor reads public video pages the way a logged-out visitor sees them. You do not need to log in or provide cookies.

Known limits

  • Only public videos work. Private, deleted, age-restricted or region-blocked videos are skipped.
  • TikTok sometimes answers with a verification page or drops the connection. The actor retries on a new proxy session up to five times, then skips the video without charge. It does not solve verification challenges.
  • Residential proxy is the default and the recommended setting.
  • Counts come from TikTok at the time of the run and change over time.
  • Comments, related videos and profile feeds are not part of this actor.