# Douyin Scraper: Videos, Search and Trends

> Douyin scraper: get public videos by keyword, creator, link or the hot-search list. Likes, comments, shares, saves, hashtags and author. No login.

URL: https://cliqtomedia.com/actors/douyin-scraper/

Category: Social media & communities · Status: live on Apify Store · Apify page: https://apify.com/cliqtomedia/douyin-scraper?fpr=cliqto

Get public Douyin videos without login. Search by keyword, read a creator's latest videos, check video links or get the hot-search list. One clean row per video.

## How to use it: 3 steps

1. **Make a free Apify account.** Apify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `咖啡` in Keywords (search mode). Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Get public Douyin (抖音) videos by keyword, creator profile, video link or the trending list. Each video comes back as one clean row with caption, likes, comments, shares, saves, date, hashtags, author and music.

- Search by keyword — videos that Douyin shows for a word, with their position in the results.
- Creator profile videos — the latest public videos of a creator.
- Video links — one row for each video link, share link or video ID.
- Trending (hot search) — videos for the topics on Douyin's hot-search list, with the topic attached.

### Good for

- Watch which videos Douyin shows for your product, brand or topic words.
- Follow what competing creators or brand accounts post and how it performs.
- Get likes, comments, shares and saves for a list of video links you already have.
- See which topics and videos are hot on Douyin today.

## Price

Pay per event. Apify bills you, not us.

| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.03 | Charged once per run, one fee per GB of memory. This tool uses 2 GB by default, so $0.06 per run. |
| Video | $0.003 (from $0.0021 on paid Apify plans) | Charged for each Douyin video row saved (likes, comments, shares, saves, hashtags, author). A video found by several keywords is charged once. Status rows (not found, no results, error) are not charged as videos. |
| Keyword, profile or link | $0.005 | Charged once for each keyword, creator profile or video link the run starts to work on, and once for the trending list, even when Douyin has no videos for it. Repeated inputs are removed first and are not charged. |

- One result: about $0.06.
- 1,000 results: about $3.06.
- Every day 100 results, for 30 days: about $10.80 a month.

Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Prices checked on 8 November 2026. Current price: https://apify.com/cliqtomedia/douyin-scraper?fpr=cliqto

## Questions

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

No. The tool reads only what a visitor who is not logged in sees.

### Why is the plays field empty?

The Douyin website does not show view counts. The tool writes null, not 0.

### Can I search in English?

Yes, but Chinese keywords give more results.

### Why are my search results different from the Douyin app?

Search uses Douyin's mobile website ranking ("综合"). The app can personalize results and show another order. The Actor keeps the website order in `searchPosition`.

### How fresh is the data?

Every run reads Douyin live. Likes and comments are the numbers at `fetchedAt`. Cover links expire after some time, so download covers soon if you need them.

## Data fields

- `videoId` (string): Douyin video (aweme) ID. Null only on a status row.
- `url` (string): Link to the video on www.douyin.com.
- `contentType` (string): video, or images for a photo post (slides).
- `desc` (string): Caption as the author wrote it.
- `createdAt` (string): When the video was published (ISO 8601, UTC).
- `likes` (integer): Likes.
- `comments` (integer): Comments.
- `shares` (integer): Shares.
- `collects` (integer): Saves (favourites).
- `plays` (null): Always null: Douyin's web pages do not show view counts. Never a fake 0.
- `durationSec` (number): Video length in seconds; null for photo posts.
- `imageCount` (integer): Number of pictures in a photo post; null for videos.
- `hashtags` (array): Hashtags from the caption, without #.
- `isPinned` (boolean): Pinned at the top of the creator's profile; set only in creator mode, null elsewhere.
- `author` (object): Creator: uid, secUid, nickname, uniqueId (Douyin ID), followers (null when Douyin does not report it), verified, verifiedReason, url. No contact details.
- `music` (object): Sound: id, title, author, isOriginal.
- `coverUrl` (string): Cover image URL (signed by Douyin, expires after some time).
- `mode` (string): search, user, video or trending.
- `input` (string): The keyword, link or 'trending' this row came from.
- `searchPosition` (integer): Position in the search results or trending video list, from 1.
- `trend` (object): Trending mode: word, rank and hotValue of the hot-search topic.
- `status` (string): ok for a video; other values are status rows that explain why an input gave no videos (never charged as videos).
- `error` (string): Reason on a status row.
- `source` (string): www.douyin.com or so.douyin.com.
- `fetchedAt` (string): When the row was collected (ISO 8601, UTC).

## Input settings

- `mode` (string): Search: videos for keywords. Creator: latest public videos of profiles. Video: one row per video link. Trending: videos for Douyin's hot-search list.
- `keywords` (array): Words to search on Douyin, in Chinese or any language, one per line, up to 20. Used only in Search mode.
- `urls` (array): Creator mode: profile links like https://www.douyin.com/user/MS4wLjABAAAA… or the sec_uid. Video mode: links like https://www.douyin.com/video/7699062276518677770, v.douyin.com share links, share text with a link, or the video ID. One per line, up to 100.
- `maxItems` (integer): Stop after this many videos for each keyword or profile, or for the whole trending list (1–1000). Not used in Video mode. Without login Douyin shows only about the first 20 videos of a profile.

## Step by step on Apify

1. Open the Input tab.
2. Keep What to collect (`mode`) on Search by keyword.
3. Keep the prefilled keyword `咖啡` (coffee) in `keywords`, or add your own words.
4. Keep Max videos (`maxItems`) at 10.
5. Click Start.
6. Open the Output tab and check the Overview table: `desc`, `likes`, `comments` and `author.nickname` for each video.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Topic and brand research | `mode: search`, `keywords` | Video in search results | `desc`, `likes`, `searchPosition`, `hashtags`, `author.nickname` | Export to Google Sheets or CSV |
| Creator tracking | `mode: user`, `urls` with profile links | Creator's latest videos | `createdAt`, `likes`, `comments`, `isPinned` | Scheduled run, compare tables |
| Stats for known videos | `mode: video`, `urls` with video links | One video per link | `likes`, `comments`, `shares`, `collects`, `status` | API call from your system |
| Trend watch | `mode: trending` | Video of a hot topic | `trend.word`, `trend.rank`, `desc`, `likes` | Daily schedule, dashboard |

## Tips

- Search gives about 150 videos per keyword. Use more keywords for more videos.
- Without login, a profile shows only about 20 latest videos.
- Run trending mode on a daily schedule to see new topics.

## Limits



- Search: Douyin returns about 150 videos per keyword, then stops. `maxItems` above that gives the same ~150 videos. Search results follow Douyin's website ranking; they can differ from the app and from a "most liked" order.
- Creator profiles: without login Douyin shows only about the first 19–20 videos of a profile. The run summary marks this as `LOGIN_LIMIT`.
- Trending: the hot-search list has about 50 topics; the measured maximum was 363 videos for the whole list.
- Run length: one run works up to 30 minutes. The largest tested run had 14 keywords and saved 1,596 videos in 19 minutes. Split bigger jobs into several runs.
- Speed: opening Douyin in a browser takes 30–60 seconds, so even a small run takes about one minute.
- No views: Douyin's website does not show view counts, so `plays` is always `null`.
- Not included: video files (MP4), comments, products, live streams, private or login-only content, and private contacts.
- Verification pages: Douyin can show a CAPTCHA to any visitor. The Actor does not solve it; it tries a new session at most twice and then reports an `error`.

## Sample result

```json
{
  "videoId": "7686495232195847857",
  "url": "https://www.douyin.com/video/7686495232195847857",
  "contentType": "video",
  "desc": "一次讲清楚14种咖啡到底有什么区别? #咖啡 #真财实学计划 #全球创作者计划 #商业 #燃起来了大国重器",
  "createdAt": "2026-09-17T13:42:19.000Z",
  "likes": 1222,
  "comments": 29,
  "shares": 418,
  "collects": 1045,
  "plays": null,
  "durationSec": 657.4,
  "imageCount": null,
  "hashtags": ["咖啡", "真财实学计划", "全球创作者计划", "商业", "燃起来了大国重器"],
  "isPinned": null,
  "author": {
    "uid": "3439748989075293",
    "secUid": "MS4wLjABAAAAD3KIHnwx3K8xFD8JORV0mNLXP57SekbBYmbXN9r283Cs6fUrtuMYyPtlXLr1N2iy",
    "nickname": "长江",
    "uniqueId": "90154947736",
    "followers": null,
    "verified": false,
    "verifiedReason": null,
    "url": "https://www.douyin.com/user/MS4wLjABAAAAD3KIHnwx3K8xFD8JORV0mNLXP57SekbBYmbXN9r283Cs6fUrtuMYyPtlXLr1N2iy"
  },
  "music": {
    "id": "7686495286553840399",
    "title": "@长江创作的原声",
    "author": "长江",
    "isOriginal": false
  },
  "coverUrl": "https://p3-sign.douyinpic.com/tos-cn-i-0813c000-ce/…",
  "mode": "search",
  "input": "咖啡",
  "searchPosition": 1,
  "trend": null,
  "status": "ok",
  "error": null,
  "source": "so.douyin.com",
  "fetchedAt": "2026-10-26T14:15:49.634Z"
}
```

## Use it from code

Actor ID: `cliqtomedia/douyin-scraper`

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/douyin-scraper").call(run_input={
    "mode": "search",
    "keywords": [
        "咖啡"
    ]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

```bash
curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~douyin-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"mode": "search", "keywords": ["咖啡"]}'
```

```python
# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool

tool = ApifyActorsTool("cliqtomedia/douyin-scraper")
result = tool.invoke({"run_input": {"mode": "search", "keywords": ["咖啡"]}})
print(result)
```

run-sync waits up to 300 seconds; for longer runs start a run and use a webhook. LlamaIndex and MCP: https://cliqtomedia.com/actors/ai-agents/

## Similar tools

- [Bilibili Scraper: Videos, Comments & Creators, No Login](https://cliqtomedia.com/actors/bilibili-scraper/)
- [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/)
- [Substack Newsletter Scraper: RSS Feed Metadata](https://cliqtomedia.com/actors/substack-newsletter-scraper/)
- [Hacker News Scraper: Stories, Comments & Parent IDs](https://cliqtomedia.com/actors/hacker-news-stories-comments-scraper/)
- [Bluesky Scraper — Posts, Profiles & Followers, No Login](https://cliqtomedia.com/actors/bluesky-scraper/)
- [Medium Article Scraper: Tags, Authors & Publications](https://cliqtomedia.com/actors/medium-articles-scraper/)
