# Douyin Search & Videos Scraper - Keywords and Post URLs (`parseforge/douyin-search-videos-scraper`) Actor

Search Douyin (抖音) by keyword or fetch posts by URL. Captions, likes, comments, shares, saves, author, music, cover, play URL and images. No login. Export CSV, Excel, JSON, XML.

- **URL**: https://apify.com/parseforge/douyin-search-videos-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Social media, Videos
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.40 / 1,000 result items

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner-v4.webp)

## 🎬 Douyin Search & Videos Scraper

> 🚀 **Export Douyin (抖音) search results in seconds.** 32 fields per post, 100 to 130 posts per keyword, exact like, comment, share and save counts, no login and no browser.

Douyin is the Chinese version of TikTok and one of the largest short video platforms in the world. Its desktop site now asks every visitor to log in before it will search. This Actor reads Douyin's own mobile search pages, which still serve results to logged-out visitors, and turns every post into a clean row: caption, hashtags, publish time, duration, likes, comments, shares, saves, the author's name, Douyin ID, sec\_uid and bio, the sound used, the cover image, a direct MP4 address and the full picture list of image posts.

Coverage: any keyword Douyin can search, in Chinese or English. A keyword returns about 150 result cards, of which 100 to 130 are posts (the rest are live streams and topic cards, which are skipped). In a 32 post test run every row carried a cover, caption, publish date, author and exact counts, 88 percent had hashtags and 78 percent were videos with a play URL. You can also paste post links or IDs to fetch single posts in full.

| 🎯 Target Audience | 💡 Primary Use Cases |
| --- | --- |
| 📣 Brand and marketing teams | Track what Chinese consumers post about a product, brand or category |
| 🔍 KOL and influencer scouts | Find creators who rank for a keyword and read their bio and contact lines |
| 📈 Trend analysts | Compare engagement across keywords, formats and publish dates |
| 🛍 Cross-border sellers | See which products and hooks go viral on Douyin before they reach TikTok |
| 🤖 Data and AI teams | Build Chinese caption, hashtag and video datasets |
| 🎓 Researchers | Study short video culture and platform dynamics in China |

### 📋 What the Douyin Search & Videos Scraper does

Give it keywords, post links, or both. It searches Douyin for each keyword, pages through the results, and writes one row per post.

- 🔎 **Keyword search.** 100 to 130 posts per keyword, in Douyin's own ranking order, with the rank on every row.
- 🔗 **Post links.** www.douyin.com/video and /note links, iesdouyin.com share links or v.douyin.com short links.
- 🎞 **Videos and image posts.** Keep both or only one type. Image posts come with every picture.
- ❤️ **Exact counts.** Likes, comments, shares and saves as whole numbers, not "1.2w".
- 👤 **Author on every row.** Name, Douyin ID, numeric UID, sec\_uid, profile link, avatar, bio and verification label.
- 🎵 **Sound and media.** Music title and author, cover image, a direct MP4 address, width, height and duration.
- 🧹 **Filters.** Minimum likes and a published-after date, applied before anything is charged.

> 💡 **Why it matters:** Douyin trends usually reach TikTok, Instagram and Western marketplaces weeks later. Searching Douyin directly shows you what is working now, in the market where it started, with the numbers to rank it.

### 🎬 Full Demo (🚧 Coming soon)

### 📊 Output

| Field | Description |
| --- | --- |
| 🖼 imageUrl | Cover image of the video, or the first picture of an image post |
| 📌 title | Post title, or the first line of the caption |
| 🔗 url | Post page on www.douyin.com |
| 🆔 id | Douyin post ID |
| 🎞 contentType | Video or Image post |
| 📝 description | Full caption with hashtags |
| #️⃣ hashtags | Hashtags used in the caption |
| 📅 createdAt | Publication time |
| ⏱ durationSeconds | Video length in seconds |
| ❤️ likeCount | Likes |
| 💬 commentCount | Comments |
| 🔁 shareCount | Shares |
| ⭐ collectCount | Saves |
| 👤 authorNickname | Author display name |
| 🪪 authorDouyinId | Author's Douyin number (抖音号) |
| 🔢 authorId | Author's numeric user ID |
| 🔐 authorSecUid | Author's sec\_uid, the key in profile links |
| 🔗 authorUrl | Author profile page |
| 🧑 authorAvatarUrl | Author avatar |
| ✍️ authorSignature | Author bio |
| ✅ authorVerification | Verification label, or None |
| 🎵 musicTitle | Sound used by the post |
| 🎤 musicAuthor | Author of the sound |
| 🎧 musicUrl | Audio file of the sound, when Douyin publishes one |
| ▶️ videoPlayUrl | Direct MP4 address (signed, valid for about a day) |
| ↔️ videoWidth | Video width in pixels |
| ↕️ videoHeight | Video height in pixels |
| 🖼 imageUrls | Pictures of an image post |
| 🔎 searchKeyword | Keyword that found the post |
| 🏅 searchRank | Position in that keyword's results |
| 🕒 scrapedAt | Time the row was collected |
| ❌ error | Error message, null on success |

Three real rows from a test run (a keyword result, an image post and a post requested by link; image lists shortened to two):

```json
[
  {
    "imageUrl": "https://p5-ex-gddgtc-sign.douyinpic.com/tos-cn-p-0015/osqOoYgBfAEBMz0XBBe1ipBHOiACiAZw4x7Icy~tplv-dy-resize-walign-adapt-aq:540:q75.webp?biz_tag=aweme_video&card_type=116_ecom_columns_goods&column_n=0&from=327834062&l=20260925085443B2C9E2AAB078190A75D3&lk3s=138a59ce&s=PackSourceEnum_SEARCH&sc=cover&se=false&x-expires=1791504000&x-signature=4ycyZsGrjAtBYX4hZSQeb0w3wXg%3D",
    "title": "五香花生米#懒人版花生米 #花生神仙吃法 #大袋花生 #花生米",
    "url": "https://www.douyin.com/video/7642110009648031982",
    "id": "7642110009648031982",
    "contentType": "Video",
    "description": "五香花生米#懒人版花生米 #花生神仙吃法 #大袋花生 #花生米",
    "hashtags": [
      "懒人版花生米",
      "花生神仙吃法",
      "大袋花生",
      "花生米"
    ],
    "createdAt": "2026-05-20T22:49:53.000Z",
    "durationSeconds": 42,
    "likeCount": 1179,
    "commentCount": 98,
    "shareCount": 176,
    "collectCount": 371,
    "authorNickname": "米兔爱吃糖",
    "authorDouyinId": "44175279951",
    "authorId": "3176916315805972",
    "authorSecUid": "MS4wLjABAAAA6Mqt1rLxrHYqT9rptLAk8f9iuA2NA72sP058_7gcsIVKFZ1gQF3WV6LUnH2C-1YK",
    "authorUrl": "https://www.douyin.com/user/MS4wLjABAAAA6Mqt1rLxrHYqT9rptLAk8f9iuA2NA72sP058_7gcsIVKFZ1gQF3WV6LUnH2C-1YK",
    "authorAvatarUrl": "https://p3.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_33c2bcdbf5661b4d040b16405eb36af3.jpeg?card_type=116_ecom_columns_goods&column_n=0&from=327834062",
    "authorSignature": "如有侵 请联系删除 和气生财\n全网搜索各种好吃的🍜🍓🍬🍭\n宝藏挖掘机\n谢谢小可爱们的喜欢\n好吃的才会推荐\n同款都在÷窗搜索关键词[对勾]\n喜欢的话记得常来哦[比心][100分]",
    "authorVerification": "None",
    "musicTitle": "@茹妈好物创作的原声",
    "musicAuthor": "茹妈好物",
    "musicUrl": "https://sf6-cdn-tos.douyinstatic.com/obj/ies-music/7409592242177870629.mp3",
    "videoPlayUrl": "https://v5-dy-ov-experiment.zjcdn.com/e4525f0095d6528be0639332725c67c6/6ab5d48e/video/tos/cn/tos-cn-ve-15/ooEB1BQyoqoxABH4CozAAwKAiACqOYKIigfieO/?a=1128&ch=11&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1967&bt=1967&cs=0&ds=3&ft=264eDCPe5JtmcAQ-7X3FAKKJiu3TsfagBmHFkGUq8fHH9tUdJNYjCr~2Nzj&mime_type=video_mp4&qs=0&rc=ZDk4ZTU7aWhnPDs3NTU7aUBpanJlO2w5cm42OzMzNGkzM0AuNl41MTJjNV8xNTNgMzVjYSMwLWlwMmRjZzRhLS1kLS9zcw%3D%3D&btag=c0010e00098000&cquery=100b_105G_103Q_103R_103S&dy_q=1790297684&feature_id=f5241e7604dff1d9d6c943fd20bd51a2&l=20260925085443B2C9E2AAB078190A75D3",
    "videoWidth": 1080,
    "videoHeight": 1920,
    "imageUrls": [],
    "searchKeyword": "美食",
    "searchRank": 4,
    "scrapedAt": "2026-09-25T00:54:44.717Z",
    "error": null
  },
  {
    "imageUrl": "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/o8vgMtZg5SQ7PIjA7CA7j7rAoiAAyBUiIE9Ac~noop.jpeg?lk3s=138a59ce&x-expires=1791504000&x-signature=09Pd84elMeEoclBWKzxDvYzP4XY%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&biz_tag=pcweb_cover&l=20260925085442DA99FCA4D80456FDF8E1",
    "title": "全网最好用的口红排行榜第一名！你的上榜了吗？ #口红 #口红排行榜前十名 #双十一 #女士口红 #口红不掉色不沾杯持久防水不脱色",
    "url": "https://www.douyin.com/note/7431130896725560585",
    "id": "7431130896725560585",
    "contentType": "Image post",
    "description": "全网最好用的口红排行榜第一名！你的上榜了吗？ #口红 #口红排行榜前十名 #双十一 #女士口红 #口红不掉色不沾杯持久防水不脱色",
    "hashtags": [
      "口红",
      "口红排行榜前十名",
      "双十一",
      "女士口红",
      "口红不掉色不沾杯持久防水不脱色"
    ],
    "createdAt": "2024-10-29T09:43:27.000Z",
    "durationSeconds": 0,
    "likeCount": 99,
    "commentCount": 6,
    "shareCount": 12,
    "collectCount": 36,
    "authorNickname": "爱测评的雯子",
    "authorDouyinId": "91234423481",
    "authorId": "1220908094331338",
    "authorSecUid": "MS4wLjABAAAAUzwXEuf9lwaICZ_HJsWUjoZSqkP-GDMQHL90W5DpIU60IA-vDe_Teehwm8UhKqll",
    "authorUrl": "https://www.douyin.com/user/MS4wLjABAAAAUzwXEuf9lwaICZ_HJsWUjoZSqkP-GDMQHL90W5DpIU60IA-vDe_Teehwm8UhKqll",
    "authorAvatarUrl": "https://p3-pc.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-i-0813c001_o4u25NIESApW0aI9DffdNfAIGeA8LCAQVIAaGQ.jpeg?from=327834062",
    "authorSignature": "橄榄皮|爱测评各种口红\n和姐妹们一起往变美的道路上一去不复返",
    "authorVerification": "None",
    "musicTitle": "Enchanting Allure（迷人的诱惑）",
    "musicAuthor": "缘分亭",
    "musicUrl": "https://sf6-cdn-tos.douyinstatic.com/obj/tos-cn-ve-2774/oE3QIYnEAK7nC55HmLefzbGEcDfjAI143xdjgf",
    "videoPlayUrl": "N/A",
    "videoWidth": 0,
    "videoHeight": 0,
    "imageUrls": [
      "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813/o8vgMtZg5SQ7PIjA7CA7j7rAoiAAyBUiIE9Ac~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1792886400&x-signature=h%2BM%2FOnNQGCqQvQ1WKZLmMyUmTqM%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20260925085442DA99FCA4D80456FDF8E1",
      "https://p3-pc-sign.douyinpic.com/tos-cn-i-0813c001/o0A4kKEgNkAFeEKrAr9B3IfGA1DAACAIZAUn3g~tplv-dy-aweme-images:q75.webp?lk3s=138a59ce&x-expires=1792886400&x-signature=vlqG0Y%2FB8y7pr5kJhTYHS5jzXV4%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=image&biz_tag=aweme_images&l=20260925085442DA99FCA4D80456FDF8E1"
    ],
    "searchKeyword": "N/A",
    "searchRank": 0,
    "scrapedAt": "2026-09-25T00:54:42.136Z",
    "error": null
  },
  {
    "imageUrl": "https://p3-pc-sign.douyinpic.com/image-cut-tos-priv/94a496468886f3ae6dbfb26d5c6f0bef~tplv-dy-resize-origshort-autoq-75:330.jpeg?lk3s=138a59ce&x-expires=2105654400&x-signature=DVr0l2hRP0Rl1QOtmeFJuFf%2BLVU%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=cover&biz_tag=pcweb_cover&l=2026092508543921699974BEE7B71B90C8",
    "title": "当你在2026年再次听到这首歌（第5集）#ladygaga #pokerface #高中生",
    "url": "https://www.douyin.com/video/7686432847778982833",
    "id": "7686432847778982833",
    "contentType": "Video",
    "description": "当你在2026年再次听到这首歌（第5集）#ladygaga #pokerface #高中生",
    "hashtags": [
      "ladygaga",
      "pokerface",
      "高中生"
    ],
    "createdAt": "2026-09-17T09:40:14.000Z",
    "durationSeconds": 66,
    "likeCount": 5135812,
    "commentCount": 47042,
    "shareCount": 1034823,
    "collectCount": 303310,
    "authorNickname": "拉小提琴的王主任🎻",
    "authorDouyinId": "191728731",
    "authorId": "85020314682",
    "authorSecUid": "MS4wLjABAAAAePhr9XGmGokc2XGCYzRq7kQFv7JyzOlfZ8hThXYhBgE",
    "authorUrl": "https://www.douyin.com/user/MS4wLjABAAAAePhr9XGmGokc2XGCYzRq7kQFv7JyzOlfZ8hThXYhBgE",
    "authorAvatarUrl": "https://p3-pc.douyinpic.com/aweme/100x100/aweme-avatar/tos-cn-avt-0015_4891d24e5f26c4ae7387759804314daf.jpeg?from=327834062",
    "authorSignature": "⭐图:tktk8088\n商务🈴作：ctian1979\n大哥：@Wzr女团 \n家里有：pe姐@Dazzling🌟 一级头@洋芋头 小午@小午y 起司@起司_ 龙哥@陈饿了么 糕糕@糕糕！ 静香@地球撞彗星 酸酸@贼歪艾克斯 口罩姐@木沐目 小花卷@中二病统治天下 转姐@恩恩恩恩恩 跳跳姐@王不悦 小黛玉@花魂 小颖@糊涂图",
    "authorVerification": "None",
    "musicTitle": "@拉小提琴的王主任🎻创作的原声",
    "musicAuthor": "拉小提琴的王主任🎻",
    "musicUrl": "https://lf9-music-east.douyinstatic.com/obj/ies-music-hj/7686432852212271930.mp3",
    "videoPlayUrl": "https://v3-dy-o.zjcdn.com/ab19e9e2e91efa8f8a6c9c03112d5b33/6ab5f0c0/video/tos/cn/tos-cn-ve-15c000-ce/ooIMi1QaIiJqRRPEdt1ArBvBVEp8n5ofwA2ime/?a=6383&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1949&bt=1949&cs=0&ds=4&ft=3.0nz4O1_Yeb0piwnhGI4iEEe~dIW.s3-y0B4gLRZmsBBUbRCejcQOJ5vjTQ&mime_type=video_mp4&qs=0&rc=NWY5NmllNmY4aDk8ZzxlPEBpMzxlaW85cjl1ZDMzbGkzNUBfYl9fYV4zNmMxYTExMjMyYSNhZjJvMmRjL2lhLS1kLTRzcw%3D%3D&btag=c0000e00028000&cc=1f&cquery=100o_100w_100B_100x_100z&dy_q=1790297679&feature_id=37f92ebd2877ae8e7eba995d406c5150&l=2026092508543921699974BEE7B71B90C8&req_cdn_type=",
    "videoWidth": 2560,
    "videoHeight": 1440,
    "imageUrls": [],
    "searchKeyword": "N/A",
    "searchRank": 0,
    "scrapedAt": "2026-09-25T00:54:39.306Z",
    "error": null
  }
]
```

### ✨ Why choose this Actor

- 🔓 **No login, no cookies.** It never asks for a Douyin account, so nothing of yours can be banned.
- ⚡ **No browser.** Plain HTTP against Douyin's own pages keeps runs fast and cheap: a 30 post keyword takes about 15 seconds and 247 posts from two keywords took under 3 minutes in the cloud.
- 🧾 **One flat row per post.** Post, author, sound and media in a single row that opens cleanly in Excel.
- 🔁 **Duplicate-free.** Posts are deduplicated by post ID across keywords and links, so you never pay twice for one post.
- 🧭 **Honest coverage.** The log shows every results page and when Douyin ends the list.

### 📈 How it compares to alternatives

| | This Actor | Logged-in scrapers | Manual browsing |
| --- | --- | --- | --- |
| Douyin account or cookies needed | ❌ No | ✅ Yes, and accounts get flagged | ✅ Yes, the desktop site asks for a login |
| Posts per keyword | 100 to 130 | Several hundred | As many as you can copy |
| Exact like, comment, share and save counts | ✅ | ✅ | Rounded ("1.2w") |
| Author sec\_uid and profile link on every row | ✅ | Varies | Manual |
| Image posts with all pictures | ✅ | Varies | Manual |
| Play count | ❌ Douyin does not publish it | ❌ | ❌ |
| Author follower count | ❌ Withheld on search results | Varies | ✅ On the profile |

Douyin ends a logged-out search at about 150 result cards, which is 100 to 130 posts once live streams are skipped. To go wider, add related keywords (for example 美食教程, 家常菜, 街头美食 next to 美食): posts are deduplicated across them. For followers and the full post list of a creator, use the Douyin Profile Scraper with the `authorUrl` from these rows.

### 🚀 How to use

1. Create a free Apify account with $5 credit: [sign up here](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the Douyin Search & Videos Scraper and add one or more keywords, post links, or both.
3. Optionally set the content type, a minimum number of likes, or a published-after date.
4. Set Max Items and click Start. A 30 post keyword takes about 15 seconds.
5. Download the dataset as CSV, Excel, JSON or XML, or read it through the API.

A minimal run looks like this:

```json
{ "searchTerms": ["美食", "口红"], "contentType": "video", "minLikes": 1000, "maxItems": 150 }
```

### 💼 Business use cases

#### 📣 Brand and category monitoring

Search your brand, product names and category words every week. Sort by likes and saves to see which posts and hooks drive attention, and who made them.

#### 🔍 Creator discovery

Search a niche keyword, keep posts above 10,000 likes, and group the rows by `authorSecUid`. The bio column often carries a business contact line (商务合作).

#### 📈 Trend research

Run the same keywords on a schedule and compare the ranks, counts and publish dates over time to see which topics are rising.

#### 🛍 Product and content sourcing

Search product keywords such as 口红 or 露营装备 to see which items, packaging and video formats go viral in China before they reach other markets.

### 🔌 Automating Douyin Search & Videos Scraper

- ⏰ **Schedules.** Run it daily or weekly from the Apify console.
- 🔗 **Make and Zapier.** Send new posts to Google Sheets, Airtable or a CRM.
- 💬 **Slack.** Post a message when a keyword gets a post above a like threshold.
- 🔄 **Airbyte.** Load the dataset into your warehouse.
- 🐙 **GitHub Actions.** Trigger runs from your pipeline through the API.
- 📁 **Google Drive.** Export each run as a spreadsheet automatically.

### 🌟 Beyond business use cases

- 🎓 **Research.** Study Chinese short video trends, hashtags and engagement.
- 🙋 **Personal.** Save recipes, tutorials or travel ideas you found on Douyin, with links.
- 🤝 **Non-profit.** Monitor public conversation about health or safety topics.
- 🧪 **Experimentation.** Build a caption and hashtag dataset for Chinese language models.

### 🤖 Ask an AI assistant about this scraper

Paste this page into ChatGPT, Claude or Gemini and ask things like "Which keywords should I add next to 美食 to get 500 unique posts?" or "How do I chart likes per hashtag from this dataset?".

### ❓ Frequently Asked Questions

#### 🔑 Do I need a Douyin account or cookies?

No. The Actor reads Douyin's mobile search pages, which serve results to visitors who are not logged in. It never asks for an account or cookies.

#### 🔢 How many posts do I get per keyword?

100 to 130 (115 for 口红 and 130 for 露营 in a test run). Douyin stops a logged-out search at roughly 150 result cards, and some of those are live streams or topic cards, which are skipped. Add related keywords to collect more; duplicates are removed.

#### 🌐 Should I search in Chinese or English?

Chinese gives the most relevant results because Douyin is a Chinese platform. English keywords work too and return Chinese posts that mention them.

#### 🎞 What is an image post?

A post made of pictures instead of a video (图文). Its `contentType` is "Image post", `imageUrls` lists every picture, and the video columns are empty or 0.

#### ▶️ Can I download the videos?

`videoPlayUrl` is a direct MP4 address that Douyin signs for about a day. Download the files soon after the run.

#### 👀 Why is there no view count?

Douyin does not publish play counts for other people's posts. Likes, comments, shares and saves are all exact.

#### 👥 Why is there no follower count?

Douyin withholds the author's follower count on search results. Use the Douyin Profile Scraper with `authorUrl` to get followers, total likes and the full post list.

#### 📅 Can I sort by newest or filter by date?

Douyin's public search ranks by relevance only. Use "Published after" to drop older posts; the filter runs before anything is charged.

#### 🔗 Which post links work?

www.douyin.com/video/ID, www.douyin.com/note/ID, iesdouyin.com share links and v.douyin.com short links from the app's share button.

#### 🧾 Am I charged for errors?

No. A deleted or private post is written as an error row for transparency and never charged.

#### 🛡️ Why is the proxy off by default?

Douyin's mobile search pages answer Apify's servers directly. Turn on the datacenter proxy only if your runs start returning nothing.

### 🔌 Integrate with any app

Use the Apify API, the JavaScript and Python clients, webhooks, or ready-made integrations for Make, Zapier, Slack, Google Sheets, Airbyte and more to send Douyin data wherever you need it.

### 🔗 Recommended Actors

- [TikTok Comments Scraper](https://apify.com/parseforge/tiktok-comments-scraper) for every comment under a TikTok video.
- [TikTok Profile Scraper](https://apify.com/parseforge/tiktok-profile-scraper) for TikTok creators and their videos.
- [RedNote Notes Scraper](https://apify.com/parseforge/rednote-notes-scraper) for Xiaohongshu posts.
- [Weibo Scraper](https://apify.com/parseforge/weibo-scraper) for Chinese microblog posts.
- [TikTok Shop Scraper](https://apify.com/parseforge/tiktok-shop-scraper) for TikTok Shop products.

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more social media Actors.

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** independent tool, not affiliated with Douyin or ByteDance; only publicly available data is collected.

# Actor input Schema

## `searchTerms` (type: `array`):

Keywords to search on Douyin, one per line. Chinese keywords return the most results (for example 美食, 旅行, 口红). Douyin serves 100 to 130 posts per keyword to visitors who are not logged in, so add related keywords for more coverage.

## `videoUrls` (type: `array`):

Douyin post links to fetch in full: www.douyin.com/video/<id>, www.douyin.com/note/<id>, iesdouyin.com share links or v.douyin.com short links.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `maxResultsPerTerm` (type: `integer`):

Stop paging a keyword after this many posts. Douyin's public search ends at 100 to 130 posts per keyword.

## `contentType` (type: `string`):

Keep videos, image posts (图文), or both. Live streams in the results are always skipped.

## `minLikes` (type: `integer`):

Skip posts with fewer likes than this. 0 keeps everything.

## `publishedAfter` (type: `string`):

Keep only posts published on or after this date (YYYY-MM-DD). Leave empty for any date.

## `proxyConfiguration` (type: `object`):

Apify proxy settings. Datacenter is enough; residential works too but costs more because each search page is large.

## Actor input object example

```json
{
  "searchTerms": [
    "美食"
  ],
  "maxItems": 10,
  "maxResultsPerTerm": 100,
  "contentType": "all",
  "minLikes": 0,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields

## `fullData` (type: `string`):

Complete dataset with all 32 fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "美食"
    ],
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/douyin-search-videos-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["美食"],
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/douyin-search-videos-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "美食"
  ],
  "maxItems": 10
}' |
apify call parseforge/douyin-search-videos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/douyin-search-videos-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/E6dTM8F1R5yUqAXYk/builds/byzuszKyaaO9blfGi/openapi.json
