TikTok Scraper: Videos by Keyword, Profile, Hashtag & URL avatar

TikTok Scraper: Videos by Keyword, Profile, Hashtag & URL

Pricing

from $0.20 / 1,000 videos

Go to Apify Store
TikTok Scraper: Videos by Keyword, Profile, Hashtag & URL

TikTok Scraper: Videos by Keyword, Profile, Hashtag & URL

Scrape TikTok videos by keyword, profile, hashtag or URL: plays, likes, saves, creator followers, music, country, transcripts. Export CSV, Excel, JSON, XML.

Pricing

from $0.20 / 1,000 videos

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

3 days ago

Last modified

Share

ParseForge

TikTok Scraper API: Videos by Keyword, Profile, Hashtag & URL, with Transcripts

Scrape TikTok videos by keyword, creator, hashtag or link: 258 videos from three keywords came back in 24 seconds in our last test. Every video carries plays, likes, comments, shares and saves, the creator with follower count, the sound, hashtags, mentions and media links, and on request the posting country, a transcript and a sample of top comments. No login, no TikTok API key. Export to CSV, JSON, Excel or XML.

TikTok's official Research API is limited to approved academic projects, and its Display API only covers accounts that log in to your app. This Actor reads what TikTok shows logged-out visitors, keeps one fixed schema across all four ways in, and returns one flat row per video.

Who uses itWhat they scrape TikTok for
Brand and social teamsTikTok analytics on their own and competitors' creators, run on a schedule
Influencer marketersCreators behind a topic or hashtag, with followers, likes and posting rhythm
Trend researchersTikTok trends: what a keyword or hashtag shows right now, by country
Content and SEO teamsTikTok transcripts of the videos that rank for their keywords
Data scientistsTikTok datasets with captions, stats and text for sentiment and topic models

What it does

The Actor takes keywords, profiles, hashtags and video URLs, alone or together, and returns one row per video.

  • 🎬 Video: id, link, caption, posting time, duration, size, definition, cover and animated cover, play and download links, slideshow images for photo posts.
  • 📊 Stats: plays, likes, comments, shares and saves.
  • 👤 Creator: username, nickname, id, verified, followers, following, total likes, video count, bio, avatar, private flag.
  • 🎵 Sound: id, title, author, original-sound flag, length, audio link and cover.
  • #️⃣ Text: hashtags and mentions, caption language, caption tracks available.
  • ➕ Optional add-ons, each off by default: full video details (posting country, tagged place, ad flag, caption language) for list modes, a transcript from TikTok's own captions, and up to 100 top comments per video.

What you can do with TikTok data

📈 Track creators on a schedule.

List the creators you follow in profiles with publishedAfter set to "7 days". Each run returns their new videos with fresh play, like and share counts, and the date floor stops the scroll early, so weekly runs stay fast.

🔎 See what a keyword or hashtag shows today.

Put phrases in keywords (a region per run) or tags in hashtags, sort by most played and keep only videos above a play count. You get the videos and creators that own the topic right now.

🗣 Mine what videos say, not just their captions.

Turn on the transcript add-on to get the spoken text of every video that carries TikTok captions, ready for search, summaries or sentiment models.

💬 Read the room under each video.

Turn on top comments to get the first comments TikTok shows, with likes, reply counts and commenter, next to the video's stats.

Why choose this scraper

What you get
Four ways in, one schemaKeywords, profiles, hashtags and video URLs in the same run and the same row layout: 51 columns, 54 with every add-on on.
Transcripts from TikTok's captionsThe spoken text of each captioned video as plain text, English track first. No per-minute transcription fee.
Posting countryThe country a video was posted from, read from the video's own page.
Filters and sortingDate range (exact or "7 days"), minimum plays, likes and comments, skip pinned videos and ads, sort by newest, oldest, plays, likes, comments or shares.
Region for keywordsPick the country whose TikTok answers the keyword. Japan and the US shared only 17 of their top 30 videos for "cooking" in our test.
Honest errorsA deleted video, a private profile or a hashtag that does not exist comes back as its own row with the reason, and is never billed.

How it compares

All four scrapers below read public TikTok videos by keyword, profile and hashtag. The table lists only what each rival's own Store listing and input form state, checked on September 24, 2026.

FeatureParseForgeclockworks/tiktok-scraperapidojo/tiktok-scraperxmolodtsov/tiktok-search-scraper
TranscriptAdd-on, one flat fee per video, from TikTok's captionsAdd-on, billed per minute of videoNot in its listingNot in its listing
Comment textAdd-on, 1 to 100 per video, in the same runAdd-onSeparate ActorNot in its listing
Country for keyword resultsIncluded, any countryPaid add-on, through residential proxyLocation-based searchIncluded

What a TikTok video looks like

One row from a verified run on September 24, 2026 (profile nasa, all add-ons on). The long signed media links, the transcript and the comment list are shortened here:

{
"imageUrl": "https://p19-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/o4BjAVnVuiCAcCqAE1iB7Sf3IAXzwqExBJtSUI~tplv-tiktokx-origin.image?...",
"id": "7686893699099413773",
"url": "https://www.tiktok.com/@nasa/video/7686893699099413773",
"description": "Another big week in the sky and beyond at NASA 🚀 🔭 Roman gets a major mission-life boost 🏈 NASA takes to the skies over Pittsburgh 🌕 Artemis III booster stacking nears completion Here’s what’s new in your NASA Minute!",
"createdAt": "2026-09-18T16:00:00.000Z",
"authorUsername": "nasa",
"authorNickname": "NASA",
"authorId": "7664638705177150477",
"authorVerified": "Yes",
"authorFollowers": 1800000,
"authorFollowing": 23,
"authorLikes": 9500000,
"authorVideoCount": 47,
"authorBio": "Making the seemingly impossible, possible.✨",
"authorAvatarUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-avt-0068-tx/e5143212a59c09a008bf50f487d54d1f~tplv-tiktokx-cropcenter:1080:1080.jpeg?...",
"authorPrivate": "No",
"authorUrl": "https://www.tiktok.com/@nasa",
"playCount": 172000,
"likeCount": 11700,
"commentCount": 385,
"shareCount": 427,
"saveCount": 941,
"durationSeconds": 92,
"width": 720,
"height": 1280,
"definition": "720p",
"musicId": "7686893746084547342",
"musicTitle": "original sound - NASA",
"musicAuthor": "NASA",
"musicOriginal": "No",
"musicDurationSeconds": 92,
"musicUrl": "https://v16m.tiktokcdn-us.com/d557797f86da9e8380af305b11f69370/6ab5e535/video/tos/useast5/...",
"musicCoverUrl": "https://p16-common.tiktokcdn-us.com/tos-useast5-avt-0068-tx/e5143212a59c09a008bf50f487d54d1f~tplv-tiktokx-cropcenter:720:720.jpeg?...",
"hashtags": [],
"mentions": [],
"textLanguage": "en",
"location": "US",
"placeName": "Not Disclosed",
"placeAddress": "Not Disclosed",
"isAd": "No",
"isPinned": "No",
"isSlideshow": "No",
"slideshowImages": [],
"subtitleLanguages": ["eng-US"],
"videoPlayUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/...",
"videoDownloadUrl": "https://v16-webapp-prime.us.tiktok.com/video/tos/useast5/...",
"dynamicCoverUrl": "https://p16-common-sign.tiktokcdn-us.com/tos-useast5-p-0068-tx/o4BjAVnVuiCAcCqAE1iB7Sf3IAXzwqExBJtSUI~tplv-tiktokx-origin.image?...",
"transcriptLanguage": "eng-US",
"transcript": "From the skies over Pittsburgh to the path back to the moon, NASA's mission kept moving forward this week. Here's what's new and your NASA minute. NASA's Nancy Grace Roman Space Telescope is off to an excellent start...",
"comments": [
{
"commentId": "7686913515618468621",
"text": "It’s always great to hear some good news!",
"likeCount": 449,
"replyCount": 22,
"createdAt": "2026-09-18T16:31:42.000Z",
"authorUsername": "usedgov",
"authorNickname": "U.S. Department of Education"
}
],
"sourceType": "profile",
"sourceInput": "nasa",
"scrapedAt": "2026-09-24T21:05:15.444Z",
"error": null
}

More rows from the same verification runs:

SourceCreatorPlaysLikesSavesPostedCountry
keyword cookingdiy5582538,9008,4289452026-09-23add-on
keyword cookingmeatlicious_112,4008,7832,1322026-09-20add-on
video URLnasa1,400,00092,2006,8172026-07-21US
hashtag spacetoknerdytome150,30013,2003152022-06-22US

A value the source does not give for a video reads Not Disclosed (for example a tagged place on a video with none), and a field that does not apply reads N/A (for example isPinned outside profiles). Transcript and comment columns appear only when their add-on is on.

Configure the run

Mix keywords, profiles, hashtags and video URLs in one run. maxVideosPerSource caps each keyword, profile or hashtag, and maxItems caps the whole run. The Input tab lists every option.

Track three creators' videos from the last week, newest first:

{ "profiles": ["nasa", "nfl", "@zachking"], "publishedAfter": "7 days", "sortBy": "newest", "maxVideosPerSource": 50 }

Find the most played videos for a keyword in the UK, with transcripts:

{ "keywords": ["skincare routine"], "region": "GB", "sortBy": "most-played", "minPlays": 100000, "includeTranscript": true }

Full details and top comments for specific videos:

{ "videoUrls": ["https://www.tiktok.com/@nasa/video/7665075736742530317"], "includeComments": true, "maxCommentsPerVideo": 20 }

Free users

Free-plan runs return up to 10 videos as a preview. Upgrade your Apify plan to collect up to 1,000,000 videos per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the TikTok Scraper.
  3. Enter keywords, profiles, hashtags or videoUrls, add any filters, and click Start.
  4. Export the results as CSV, Excel, JSON or XML from the Dataset tab, or schedule the run to follow creators and topics.

Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python. It plugs into Make, Zapier, Slack, Google Drive, Airbyte and GitHub through Apify's integrations.

Use with AI agents (MCP)

Give an AI agent live TikTok data through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/tiktok-scraper"

Then prompt it in plain language:

  • "Get the 30 most played TikTok videos for 'protein breakfast' in the US and tell me which creators appear more than once."
  • "Pull NASA's TikTok videos from this month with transcripts and summarize what each one announces."
  • "Compare plays and saves for the top 50 videos under #booktok and #bookrecs."

Copy this into ChatGPT, Claude, or Cursor to start:

Use the Apify Actor "parseforge/tiktok-scraper" to collect TikTok videos. Input: { "keywords": ["<phrase>"], "profiles": ["<username>"], "hashtags": ["<tag>"], "videoUrls": ["<url>"], "region": "<US>", "publishedAfter": "<7 days>", "sortBy": "<newest|most-played|most-liked>", "maxVideosPerSource": <n>, "includeTranscript": <true|false> }. Each row has id, url, description, createdAt, authorUsername, authorFollowers, playCount, likeCount, commentCount, shareCount, saveCount, musicTitle, hashtags and, with add-ons, location, transcript and comments. Call it with the ApifyClient and my APIFY_TOKEN.

Troubleshooting

Why did a keyword return an error row?

TikTok serves public keyword pages only for phrases people search. A rare phrase ("best coffee in buenos aires") has no page and comes back as an error row, not billed. Use a shorter, common phrase; spaces are joined with hyphens for you.

Why do I get at most about 100 videos per keyword?

That is where TikTok's public keyword pages stop: between 66 and 98 videos per keyword in our tests, depending on the keyword. Add related keywords or hashtags to go wider.

Why is location "Not Disclosed" on keyword, profile or hashtag rows?

The posting country lives only on the video's own page. Turn on Add full video details, or pass the video links in videoUrls, which always include it.

Why does a video link stop working after a while?

videoPlayUrl, videoDownloadUrl and the image links are signed by TikTok and expire, usually within a day. Download what you need soon after the run.

Why is the transcript empty for some videos?

About half of TikTok videos carry a caption track. Videos without one come back with an empty transcript and are not billed for it.

Why was the run slower with profiles or hashtags?

Those two lists are only released to a real browser page, so the Actor opens one page and reuses it for every profile and hashtag in the run. Keywords and video links use plain requests and are faster.

FAQ

QuestionAnswer
Do I need a TikTok account or API key?No. It reads what TikTok shows logged-out visitors.
How is this different from TikTok's own API?The Research API is for approved academic projects and the Display API covers only accounts that log in to your app. This works on any public creator, hashtag, keyword or video.
Can I search TikTok by keyword?Yes, through TikTok's public keyword pages: up to about 100 videos per keyword (66 to 98 in our tests), in the region you pick. TikTok's full in-app search needs a login and is not used.
How many videos can I get from a profile?As many as the profile shows publicly: 288 videos from @nfl in a 52-second test, one page of about 24 per scroll.
Does it get TikTok transcripts?Yes, as an add-on, from TikTok's own caption track, English first when there is one.
Does it scrape comments?A sample, as an add-on: 1 to 100 top comments per video. For every comment of a video, use TikTok Comments Scraper.
Can I filter by date, plays or likes?Yes: date range, minimum plays, likes and comments, skip pinned videos and ads, and sort by date, plays, likes, comments or shares.
Does it download the videos?It returns the video's play and download links. They are signed by TikTok and expire, so fetch the files soon after the run.
Does it need a proxy?Usually not. If TikTok pushes back, the Actor steps up to Apify Proxy (datacenter, then residential) by itself.
How many results per run?Free plan: 10. Paid: up to 1,000,000, bounded by what TikTok shows for each source.
Is this an official TikTok product?No. It is unofficial and reads only public TikTok data.

Browse the full ParseForge collection for more scrapers.

🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by TikTok or ByteDance. It collects only publicly available TikTok data. You are responsible for using the data in compliance with TikTok's terms and applicable laws, including GDPR, CCPA, and PIPL. Do not use it to identify, profile, or target individuals.