Douyin Search Scraper
Pricing
from $1.80 / 1,000 matching posts
Douyin Search Scraper
Search public Douyin posts by keyword and save rows with captions, source links, publish times, creators, engagement, sounds, hashtags, media links, and content types. Choose video or mixed video and image-text results, then add video details when needed. No buyer login or cookies are needed.
Pricing
from $1.80 / 1,000 matching posts
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🔎 Find Public Douyin Posts by Keyword
For researchers, marketers, and developers who need public Douyin data, this Actor searches posts by keyword and saves structured rows with post links, captions, publish times, creators, engagement, sounds, hashtags, topic tags, and source-hosted media links. Choose video or mixed video and image-text results, then add video details when needed. No buyer login or cookies are needed.
Use it to
- Search public posts for a phrase with Douyin Keyword Search.
- Find public posts for a hashtag with Douyin Hashtag Search.
- Collect video matches for a topic with Douyin Video Search.
- Review creator, engagement, and media fields from a search with Douyin Search Scraper.
- Search video posts with optional detail fields with Douyin Video Scraper.
📦 What Each Douyin Post Row Contains
Each saved row is one matching public Douyin post. It includes the post ID and source URL, caption, publication time, content type, and the keyword that first found it. When Douyin provides them, the row also includes creator details, engagement counts, sound data, hashtags, topic tags, and source-hosted media links.
If the same post matches more than one submitted keyword, the Actor saves the first eligible match and keeps that first keyword in matchedKeyword. It does not rewrite the row with later matching keywords. Optional source fields can be absent when Douyin does not provide them.
▶️ Run a Douyin Search
- Enter one or more search terms. Chinese, English, pinyin, hashtags, brand names, and emoji are supported by the input form.
- Choose mixed video and image-text posts or video posts only.
- Set a maximum number of posts, or leave it empty to return all available results until the Douyin source is exhausted.
- Turn on video details when you need extra fields for matching video posts.
- Start the run and open the dataset from the Output panel.
All search terms in one run use the same content type, result limit, and video-detail setting. Use a separate run when you need a different setup.
⚙️ Input
Use one shared setup for all submitted search keywords. The Actor searches public Douyin posts and keeps the first saved match when a post appears for more than one keyword.
Input fields
| Field | Type | What it does |
|---|---|---|
searchKeywords | array of strings | Search terms to submit. Each term uses the same settings in this run. |
contentTypes | string | Choose videoAndImageText for mixed video and image-text posts, or video for video posts only. |
maxItems | integer | Sets the maximum number of matching posts to save. Leave it empty to return all available results until the Douyin source is exhausted. |
includeVideoDetails | boolean | Requests extra video fields for matching video posts. Image-text posts do not receive these fields, and unavailable source data stays absent. |
Example input
This example is copied from the public input of the successful current-beta default-input run.
{"searchKeywords": ["douyin"],"contentTypes": "videoAndImageText","includeVideoDetails": false}
Work limit
Leave maxItems empty to return all available results until the Douyin source is exhausted. The source can return fewer posts when it has fewer matching posts.
🧾 Output
The Output panel links to the default dataset. Each dataset row is one matching Douyin post.
Output panel
| Field | Type | What it does |
|---|---|---|
dataset | string URL | Opens the run dataset with the saved Douyin post rows. |
Standard post row
This shape covers video and image-text rows when video-detail enrichment is not saved. Optional nested fields appear only when Douyin provides them.
| Field | Type | What it does |
|---|---|---|
postId | string | Stable ID for the Douyin post. |
postUrl | string URL | Source page for the post. |
caption | string | Caption published with the post. |
publishedAt | date-time string | Publication time reported by Douyin. |
contentType | string | Public result type: video or imageText. |
matchedKeyword | string | Submitted keyword that first found the post. |
creator | object | Public creator details when available. |
creator.id | string | Stable creator ID. |
creator.displayName | string | Creator name shown by Douyin. |
creator.handle | string | Creator handle shown by Douyin. |
creator.followerCount | integer | Followers reported for the creator. |
creator.postCount | integer | Posts reported for the creator. |
creator.region | string | Region shown for the creator. |
creator.bio | string | Biography shown for the creator. |
creator.isVerified | boolean | Whether Douyin marks the creator as verified. |
creator.profileUrl | string URL | Source page for the creator profile. |
engagement | object | Public engagement counts when available. |
engagement.likeCount | integer | Likes reported for the post. |
engagement.commentCount | integer | Comments reported for the post. |
engagement.shareCount | integer | Shares reported for the post. |
engagement.saveCount | integer | Saves reported for the post. |
engagement.viewCount | integer | Views reported for the post. |
sound | object | Attached sound or music details when available. |
sound.id | string | ID for the attached sound. |
sound.title | string | Title of the attached sound or music. |
sound.author | string | Author shown for the sound or music. |
sound.url | string URL | Source-hosted direct link to the sound when available. |
hashtags | array of strings | Hashtags attached to the post. |
topicTags | array of strings | Content topic tags supplied by Douyin. |
media | object | Source-hosted direct media links when available. |
media.videoUrl | string URL | Direct source-hosted link to the post video. |
media.coverUrl | string URL | Direct source-hosted link to the post cover image. |
Example standard row
This unshortened row is copied from the successful current-beta default-input run.
{"postId": "7618946574072925157","postUrl": "https://www.iesdouyin.com/share/video/7618946574072925157/?region=US&mid=6844597190434752513&u_code=0&did=MS4wLjABAAAAhI_xXlyIOBbg-MhlIWkA6wmFOLKt-VuaeAPaRMxm-jEa7C99CQkoLADeBBVh8u1-&iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ&with_sec_did=1&video_share_track_ver=&titleType=title&share_sign=mzWqRysVMH5EQctTrUvnITYrGwpby3ZjZ5MKJYPkOmI-&share_version=290000&ts=1790261938&from_aid=581610&from_ssr=1&share_track_info=%7B%22link_description_type%22%3A%22%22%7D","caption": "从夯到拉排名抖音分支APP#从夯到拉 #锐评 #排名 #抖音","publishedAt": "2026-03-19T12:43:55.000Z","contentType": "video","matchedKeyword": "douyin","creator": {"id": "7494199450790921276","displayName": "熊大爱玩三角洲","handle": "XDlove_play_Game","followerCount": 0,"postCount": 0,"region": "CN","bio": "三角洲行动攻略区/爆料区主播\n粉丝🐧🐧1108966072","isVerified": true,"profileUrl": "https://m.douyin.com/share/user/MS4wLjABAAAAqOY0YrSiNSz2m92ELo4LQj4uIe9LOgNOl_0DtrCFngWzzzEFj4i2BzpwnR_RmQfe?scene_from=douyin_h5_search"},"engagement": {"likeCount": 9286,"commentCount": 396,"shareCount": 976,"saveCount": 2680,"viewCount": 0},"sound": {"id": "6844597190434752513","title": "Si Tu Vois Ma Mere","author": "Max Greger"},"hashtags": ["从夯到拉","锐评","排名","抖音"],"topicTags": ["个人管理","职场技能","职场营销"],"media": {"videoUrl": "https://v3-dymsearch.douyinvod.com/94eb25b3e7b0c05c22e8f8096230c602/6ab54918/video/tos/cn/tos-cn-ve-15c000-ce/owVBiDOCeB77BWe7IQC5ifZVQ7d8TEAwrJ97gJ/?a=581610&ch=11&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=276&bt=276&cs=0&ds=3&ft=ukz_CPa1DyjNHwVQ9wzTglHhd.7EPJER3-ApQX&mime_type=video_mp4&qs=0&rc=aWg3ZWk4NDs2OzU4OmVoaEBpajR1ZnU5cmR4OTMzbGkzNUBfXzEyMF8wNjAxMS00Y18tYSNgbi4uMmRzcnFhLS1kLTVzcw%3D%3D&btag=c0000e00028000&dy_q=1790261938&feature_id=f5241e7604dff1d9d6c943fd20bd51a2&l=202609242258575D7A177467F64EA6444A","coverUrl": "https://p5-ex-gddgtc-sign.douyinpic.com/tos-cn-i-0813c000-ce/o0QzdQl7uEjwB7ZJET9g4eDeFJfAAF4ACIP7AF~tplv-dy-resize-walign-adapt-aq:540:q75.webp?biz_tag=aweme_video&card_type=153&column_n=0&from=327834062&l=202609242258575D7A177467F64EA6444A&lk3s=138a59ce&s=PackSourceEnum_SEARCH&sc=cover&se=false&x-expires=1791468000&x-signature=Xhn2%2FXs3fOYMvLC7vy3qhrSI9fA%3D"}}
Enriched video row
When includeVideoDetails is true and Douyin provides detail data for a matching video, the row keeps the standard fields and adds videoDetails.
| Field | Type | What it does |
|---|---|---|
postId | string | Stable ID for the Douyin post. |
postUrl | string URL | Source page for the post. |
caption | string | Caption published with the post. |
publishedAt | date-time string | Publication time reported by Douyin. |
contentType | string | Public result type, which is video for this shape. |
matchedKeyword | string | Submitted keyword that first found the post. |
creator | object | Public creator details when available. |
creator.id | string | Stable creator ID. |
creator.displayName | string | Creator name shown by Douyin. |
creator.handle | string | Creator handle shown by Douyin. |
creator.followerCount | integer | Followers reported for the creator. |
creator.postCount | integer | Posts reported for the creator. |
creator.region | string | Region shown for the creator. |
creator.bio | string | Biography shown for the creator. |
creator.isVerified | boolean | Whether Douyin marks the creator as verified. |
creator.profileUrl | string URL | Source page for the creator profile. |
engagement | object | Public engagement counts when available. |
engagement.likeCount | integer | Likes reported for the post. |
engagement.commentCount | integer | Comments reported for the post. |
engagement.shareCount | integer | Shares reported for the post. |
engagement.saveCount | integer | Saves reported for the post. |
engagement.viewCount | integer | Views reported for the post. |
sound | object | Attached sound or music details when available. |
sound.id | string | ID for the attached sound. |
sound.title | string | Title of the attached sound or music. |
sound.author | string | Author shown for the sound or music. |
sound.url | string URL | Source-hosted direct link to the sound when available. |
hashtags | array of strings | Hashtags attached to the post. |
topicTags | array of strings | Content topic tags supplied by Douyin. |
media | object | Source-hosted direct media links when available. |
media.videoUrl | string URL | Direct source-hosted link to the post video. |
media.coverUrl | string URL | Direct source-hosted link to the post cover image. |
videoDetails | object | Extra video fields returned when requested and available. |
videoDetails.durationSeconds | number | Video duration in seconds. |
videoDetails.width | integer | Video width in pixels. |
videoDetails.height | integer | Video height in pixels. |
videoDetails.frameRate | number | Video frame rate. |
videoDetails.bitrateKbps | number | Video bitrate in kilobits per second. |
videoDetails.format | string | Video format. |
videoDetails.codec | string | Video codec. |
videoDetails.fileSizeBytes | integer | Video file size in bytes. |
Example enriched video row
This unshortened row is copied from the successful current-beta video run with video details enabled.
{"postId": "7665457860315743161","postUrl": "https://www.iesdouyin.com/share/video/7665457860315743161/?region=US&mid=7665457675165862698&u_code=0&did=MS4wLjABAAAAQn6FJUle4o4qrHa0PmxvwXd89yWgveNiK8jtnEzvYm7rxF3ThNUi3m852xpbOLxk&iid=MS4wLjABAAAANwkJuWIRFOzg5uCpDRpMj4OX-QryoDgn-yYlXQnRwQQ&with_sec_did=1&video_share_track_ver=&titleType=title&share_sign=UBZsnpOaNAtomAfEpaIHBL0xBfkwU0aMbDt._4cIH9Q-&share_version=290000&ts=1790261472&from_aid=581610&from_ssr=1&share_track_info=%7B%22link_description_type%22%3A%22%22%7D","caption": "#抖音如何升级最新版本新功能全都有。#手机使用小妙招 #实用数码小技巧 #抖音小技巧","publishedAt": "2026-07-22T20:51:28.000Z","contentType": "video","matchedKeyword": "douyin","creator": {"id": "3123038106943695","displayName": "娟子「砥砺前行」","handle": "J3876888","followerCount": 34367,"postCount": 0,"region": "CN","bio": "强大自己是解决问题的唯一方法\n以视频传递知识,用内容记录热爱\n每天分享手机技巧小知识","isVerified": true,"profileUrl": "https://m.douyin.com/share/user/MS4wLjABAAAAPN7CC1Sn0wYT3Q7iz89e2X7XB95OMVNisQs7XSUkALayZAAr4sFpm3-icfCU0A3p?scene_from=douyin_h5_search"},"engagement": {"likeCount": 2090,"commentCount": 140,"shareCount": 647,"saveCount": 1567,"viewCount": 0},"sound": {"id": "7665457675165862698","title": "@娟子「砥砺前行」创作的原声","author": "娟子「砥砺前行」","url": "https://sf3-sign.douyinstatic.com/ies-music-hj/7665457798964054833.mp3?x-expires=1790347872&x-signature=vbp9oEYsg8dH52y2KsAPhx8ToS0%3D"},"hashtags": ["抖音如何升级最新版本新功能全都有。","实用数码小技巧","抖音小技巧"],"topicTags": ["科技","手机","手机功能教程"],"media": {"videoUrl": "https://v3-dymsearch.douyinvod.com/438491e52ba22e4664c36af43a9eb970/6ab546fc/video/tos/cn/tos-cn-ve-15c000-ce/oMepBw21DGGhihoIILLQfIgVTfsiEAGfLzGg8A/?a=581610&ch=11&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=281&bt=281&cs=0&ds=3&ft=ukz_CPa1DyjNHwVQ9wKoglHhd.UfGUAg3-ApQX&mime_type=video_mp4&qs=0&rc=ZzozOzw3ODhmaGg8PGQ3ZEBpanM4N3k5cjZsPDMzbGkzNUBiLjMwLV8tNTYxNi40NjZgYSNzZF5zMmRzbmRhLS1kLTVzcw%3D%3D&btag=c0000e00008000&dy_q=1790261472&feature_id=f5241e7604dff1d9d6c943fd20bd51a2&l=20260924225111A4DF505215765E6EB919","coverUrl": "https://p26-sign.douyinpic.com/tos-cn-p-0015c000-ce/o8nfWpkD8AG2BFMfDpVCQ5QAFX2eLhXjhgQITe~tplv-dy-resize-walign-adapt-aq:540:q75.webp?lk3s=138a59ce&x-expires=1791468000&x-signature=Lobbjs0ZkTGq03d5NZaKho5n3Bw%3D&from=327834062&s=PackSourceEnum_SEARCH&se=false&sc=cover&biz_tag=aweme_video&l=20260924225111A4DF505215765E6EB919"},"videoDetails": {"durationSeconds": 12.168,"width": 1080,"height": 1920,"frameRate": 30,"bitrateKbps": 288.492,"format": "mp4","codec": "h264","fileSizeBytes": 438797}}
💳 Pricing
This Actor uses pay-per-event pricing. The charged events describe saved outcomes in the dataset.
| Event | Charged for |
|---|---|
| Matching post | One matching post saved to the dataset. |
| Video details | Video details saved for one matching video when requested. |
🔌 Integrations
Open the dataset in Apify or read it through the Apify API. The source-hosted media and profile links in each row can be passed to your own workflow when available.
Watch the walkthrough
❓ FAQ
What happens when one post matches more than one keyword?
The Actor saves the first eligible match and keeps the first submitted keyword in matchedKeyword. It does not replace that row with a later match.
Can a mixed search return image-text posts?
Yes. Set contentTypes to videoAndImageText for mixed results. Set it to video when you want video posts only.
What does video-detail enrichment add?
When requested, matching video posts can include duration, size, frame rate, bitrate, format, codec, and file size fields. Image-text posts do not receive video details, and unavailable source fields stay absent.
What happens when I leave the result limit empty?
The Actor returns all available results until the Douyin source is exhausted. The source can return fewer posts when it has fewer matching posts.
Do I need a Douyin login or cookies?
No buyer-supplied Douyin login credentials or cookies are needed. The Actor searches public Douyin content.
Can one run use different settings for each keyword?
No. All keywords in one run use the same content type, result limit, and video-detail choice. Use separate runs for different setups.
Does the Actor store video or image files?
No. It returns source-hosted direct media links when Douyin provides them. It does not archive media files in Apify Storage.
Can I search profiles, comments, live streams, or hot-search boards?
No. This Actor searches public posts. Account search, comment search, live-stream search, and hot-search-board data are separate products.
📝 Changelog
v0.0 (24-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Douyin Search Scraper - Video & User Insights - Explore keyword search with video, creator, engagement, and music fields.
- Douyin Search Scraper - Open another simple Douyin search workflow for public search data.
- Douyin Video Search Scraper - Filter video searches by sort order, recency, length, and content type.
- Douyin Scraper - Search 抖音 Videos, Creators & Downloads - Review creator, music, hashtag, and video-tag data from keyword searches.
- Douyin Search Scraper - Use keyword search for author, view, like, comment, music, and hashtag fields.
Made with ❤️ by Maxime Dupré