Douyin Search Scraper avatar

Douyin Search Scraper

Pricing

from $5.00 / 1,000 video returneds

Go to Apify Store
Douyin Search Scraper

Douyin Search Scraper

Scrape Douyin (China TikTok / 抖音) video search results by keyword. Returns videos with author, view/like/comment counts, music, hashtags. MCP/API-ready.

Pricing

from $5.00 / 1,000 video returneds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

8

Monthly active users

12 days ago

Last modified

Share

Douyin Search Scraper is an Apify Actor for analysts, ecommerce teams, and AI agents that need Douyin video search results from a keyword query. It accepts free-text search keywords in Chinese, English, emoji, or hashtags, with one keyword processed as a separate search. Each returned record represents one Douyin video and carries fields such as aweme ID, title, author details, play, like, comment, share, and collect counts, music, hashtags, publish time, ranking, and scrape timestamp. The outcome is a structured dataset of videos ready for review, filtering, and downstream automation through Apify or Apify MCP.

Best fit and connected workflows

This Actor fits workflows that start with a keyword and end with ranked Douyin video records. Common routing patterns include:

  • China-market trend research for search terms such as product names, lifestyle topics, and category keywords.
  • Cross-border ecommerce discovery for product-led video search results.
  • Agency and brand monitoring for search visibility by topic.
  • AI agent workflows that need a single tool call to retrieve keyword-based Douyin video results through Apify MCP.

This Actor is designed around the Douyin search results page, so the workflow stays focused on keyword-driven video discovery.

Practical scenario

Mina, an ecommerce analyst, starts with the keywords "美食" and "穿搭" and wants the highest-level search view for each topic. She runs the Actor with a modest result cap and receives records that include authorNickname, playCount, likeCount, commentCount, shareCount, publishedAt, searchKeyword, and rank. She reviews the top-ranked videos for each keyword, identifies which creators appear most often, and then opens the corresponding videoPageUrl records to continue manual review or feed a follow-up workflow.

Input

FieldTypeDescription
searchQueriesarray of stringsFree-text Douyin video search keywords. Each keyword runs as a separate search. Examples include Chinese, English, emoji, and hashtags.
maxResultsintegerTotal cap on videos scraped and billed across all keywords.
sortBystringSearch order: relevance, latest, or most_liked.
publishTimestringPublish recency filter: unlimited, day, week, month, or halfYear.
durationstringVideo length filter: any, under1min, 1to5min, or over5min.
proxyConfigurationobjectProxy settings for all requests. The default uses Apify Residential pinned to HK.

Focused JSON example:

{
"searchQueries": ["美食", "穿搭"],
"maxResults": 50,
"sortBy": "relevance",
"publishTime": "week",
"duration": "any",
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "HK"
}
}

Output

The Actor writes one record per video to the default dataset and stores a run summary at OUTPUT.

FieldTypeDescription
awemeIdstringDouyin video ID.
titlestring or nullVideo caption or description.
videoPageUrlstring or nullPublic Douyin video URL.
videoUrlstring or nullDirect CDN video stream URL.
coverUrlstring or nullVideo cover or thumbnail URL.
durationinteger or nullVideo duration in milliseconds.
playCountinteger or nullTotal play count.
likeCountinteger or nullTotal like count.
commentCountinteger or nullTotal comment count.
shareCountinteger or nullTotal share count.
collectCountinteger or nullTotal bookmark or favorite count.
publishedAtstring or nullVideo publish timestamp in ISO 8601 format.
authorUidstring or nullAuthor user ID.
authorSecUidstring or nullAuthor sec_uid.
authorNicknamestring or nullAuthor display name.
authorUniqueIdstring or nullAuthor Douyin handle.
authorUrlstring or nullAuthor public profile URL.
authorAvatarUrlstring or nullAuthor avatar image URL.
authorFollowerCountinteger or nullAuthor follower count at scrape time.
musicTitlestring or nullBackground music title.
musicAuthorstring or nullBackground music creator name.
hashtagsarray of stringsHashtags extracted from the caption.
isOriginalSoundboolean or nullIndicates whether the audio is original.
searchKeywordstring or nullKeyword that surfaced the video.
rankinteger or nullPosition in the search results for that keyword.
scrapedAtstringExtraction timestamp in ISO 8601 format.

Illustrative dataset record:

{
"awemeId": "7391234567890123456",
"title": "今天的美食分享",
"videoPageUrl": "https://www.douyin.com/video/7391234567890123456",
"videoUrl": "https://v.douyin.com/example.mp4",
"coverUrl": "https://p3-douyincdn.example.com/cover.jpg",
"duration": 45000,
"playCount": 128400,
"likeCount": 8420,
"commentCount": 310,
"shareCount": 96,
"collectCount": 214,
"publishedAt": "2026-01-15T08:30:00Z",
"authorUid": "1234567890",
"authorSecUid": "MS4wLjABAAAAExample",
"authorNickname": "小张探店",
"authorUniqueId": "xiaozhang",
"authorUrl": "https://www.douyin.com/user/MS4wLjABAAAAExample",
"authorAvatarUrl": "https://p3-douyincdn.example.com/avatar.jpg",
"authorFollowerCount": 45200,
"musicTitle": "City Pop Loop",
"musicAuthor": "DJ Sample",
"hashtags": ["美食", "探店"],
"isOriginalSound": false,
"searchKeyword": "美食",
"rank": 1,
"scrapedAt": "2026-01-15T09:02:11Z"
}

How it works

This Actor uses Camoufox on Apify with the residential proxy configuration defined in the live contract. It opens Douyin search result pages, triggers the page's own search requests, and normalizes the returned video data into flat dataset records. The input supports per-keyword searches, search sorting, publish-time filtering, video-duration filtering, and an overall result cap across all keywords. The dataset view exposes an overview table and a full-record table for deeper inspection.

Pricing

Douyin Search Scraper uses Pay per event plus Apify platform usage. The live Pricing tab is the source of truth for current pricing details.

Charged events include:

  • Actor start
  • Video returned

A simple example in words: if a run returns fifty videos, the execution includes fifty "Video returned" events, plus one actor start event. The overall run cost also includes Apify platform usage according to the live Pricing tab.

Use with AI agents (MCP)

This Actor is available as an Apify Actor through Apify MCP. It is useful when an agent needs one tool call to turn a keyword into structured Douyin video results.

  • Tool description: keyword-based Douyin video search that returns ranked video records with author, engagement, music, hashtag, and timing fields.
  • Exact Actor identity: khadinakbar/douyin-search-scraper

Search Douyin for the keyword "美食" with relevance sorting, videos from the past 7 days, and a maximum of 30 results. Return the top records with author, engagement, publish time, hashtags, and the public video URL.

The returned records are suitable interpreted as search results, one record per video. rank shows where the video appeared within the keyword search, searchKeyword shows which term surfaced it, and scrapedAt shows when the record was extracted. videoPageUrl is the public Douyin page, while videoUrl is a direct CDN stream URL that may be useful for immediate processing. Cost guidance matters in agent flows because the primary billing event is per returned video, so a smaller maxResults value keeps runs focused.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/douyin-search-scraper').call({
searchQueries: ['美食', '穿搭'],
maxResults: 20,
sortBy: 'most_liked',
publishTime: 'week',
duration: 'any',
});
const datasetItems = await client.dataset(run.defaultDatasetId).listItems();
console.log(datasetItems.items);

Best results and outcome guidance

For focused search research, start with one or two keywords and a moderate maxResults value. Use relevance for Douyin's default ranking, latest for recency-oriented review, and most_liked for engagement-oriented review. Combine publishTime and duration when you want a narrower search slice, such as recent short-form videos for a product theme. The searchQueries field accepts multiple keywords, and each keyword is processed as its own search while sharing the overall result cap.

Continue the workflow

Design note

I found that the live output contract includes both videoPageUrl and videoUrl, and the latter is described as a direct CDN stream URL that may expire. That made it clear the dataset supports both a stable public page link and an ephemeral media link.

FAQ

How should I route a keyword search versus a user profile workflow?
Use this Actor when the starting point is a keyword and the target is search results. A profile-oriented workflow belongs to a different actor built for creator pages.

What happens when I want multiple topics in one run?
Place each topic in searchQueries. The Actor treats each keyword as a separate search and counts all returned videos against the shared maxResults cap.

Which fields are most useful for ranking review?
rank, playCount, likeCount, commentCount, shareCount, publishedAt, and searchKeyword are the clearest fields for search-result review.

Where can I find the complete video record?
The dataset includes both an overview view and a detail view. The detail view exposes the full set of video, author, and music fields.

How should I use the output in an MCP workflow?
Use the dataset items as structured search results. An agent can sort, summarize, compare, or pass the records into downstream review steps.

Responsible use

Use publicly available Douyin search results in ways that align with applicable law, platform terms, and your organization's data-handling policies. Review the stored fields before reuse, especially when combining video metadata with author-related information in downstream systems.