Douyin Search Scraper
Pricing
from $5.00 / 1,000 video returneds
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
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
8
Monthly active users
12 days ago
Last modified
Categories
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
| Field | Type | Description |
|---|---|---|
searchQueries | array of strings | Free-text Douyin video search keywords. Each keyword runs as a separate search. Examples include Chinese, English, emoji, and hashtags. |
maxResults | integer | Total cap on videos scraped and billed across all keywords. |
sortBy | string | Search order: relevance, latest, or most_liked. |
publishTime | string | Publish recency filter: unlimited, day, week, month, or halfYear. |
duration | string | Video length filter: any, under1min, 1to5min, or over5min. |
proxyConfiguration | object | Proxy 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.
| Field | Type | Description |
|---|---|---|
awemeId | string | Douyin video ID. |
title | string or null | Video caption or description. |
videoPageUrl | string or null | Public Douyin video URL. |
videoUrl | string or null | Direct CDN video stream URL. |
coverUrl | string or null | Video cover or thumbnail URL. |
duration | integer or null | Video duration in milliseconds. |
playCount | integer or null | Total play count. |
likeCount | integer or null | Total like count. |
commentCount | integer or null | Total comment count. |
shareCount | integer or null | Total share count. |
collectCount | integer or null | Total bookmark or favorite count. |
publishedAt | string or null | Video publish timestamp in ISO 8601 format. |
authorUid | string or null | Author user ID. |
authorSecUid | string or null | Author sec_uid. |
authorNickname | string or null | Author display name. |
authorUniqueId | string or null | Author Douyin handle. |
authorUrl | string or null | Author public profile URL. |
authorAvatarUrl | string or null | Author avatar image URL. |
authorFollowerCount | integer or null | Author follower count at scrape time. |
musicTitle | string or null | Background music title. |
musicAuthor | string or null | Background music creator name. |
hashtags | array of strings | Hashtags extracted from the caption. |
isOriginalSound | boolean or null | Indicates whether the audio is original. |
searchKeyword | string or null | Keyword that surfaced the video. |
rank | integer or null | Position in the search results for that keyword. |
scrapedAt | string | Extraction 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
- Then use Douyin Profile Scraper — 抖音 Creator Profiles & Followers to continue from Douyin Search Scraper discovery into enrichment data for the selected records.
- Then use Facebook Ads Library Scraper to extend Douyin Search Scraper with a neighboring social-media research source when the brief calls for Facebook data.
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.