Social media · Live on Apify

Douyin Scraper: Videos, Search and Trends

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.

About $3.06 for 1,000 results$0.003 per result + $0.06 per run. Apify bills you, not us.One result in a run of its own: about $0.06.Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed.

Run it on Apify Opens apify.com, the website where our tools run. Sign up free with Google or email, no card needed.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure

What you get, for example

videoId7686495232195847857
urlhttps://www.douyin.com/video/7686495232195847857
contentTypevideo

How to use it: 3 steps

  1. Make a free Apify accountApify 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 StartNo 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 resultsWhen 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.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

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.

Who uses it

China market researchers

See which videos Douyin shows for a product or brand.

Brand and PR teams

Watch the topics on the hot-search list every day.

Social analysts

Compare likes, shares and saves of creators.

Price

Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.

What you pay forPriceWhen
Start fee$0.03Charged 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.005Charged 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.

Examples

  • 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. That is enough for about 1,600 results.

Prices checked on 8 November 2026. See the current price on Apify.

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.

Details

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
TaskInputYou getKey fieldsNext step
Topic and brand researchmode: search, keywordsVideo in search resultsdesc, likes, searchPosition, hashtags, author.nicknameExport to Google Sheets or CSV
Creator trackingmode: user, urls with profile linksCreator's latest videoscreatedAt, likes, comments, isPinnedScheduled run, compare tables
Stats for known videosmode: video, urls with video linksOne video per linklikes, comments, shares, collects, statusAPI call from your system
Trend watchmode: trendingVideo of a hot topictrend.word, trend.rank, desc, likesDaily schedule, dashboard
Tips for better results
  • 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 and good to know
  • 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

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one 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. You need your Apify API token from Apify Console → Settings → API & Integrations.

Python · apify-client
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)
cURL
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": ["咖啡"]}'
LangChain · langchain-apify
# 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)

The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.

Data fields (25)
FieldTypeMeaning
videoIdstringDouyin video (aweme) ID. Null only on a status row.
urlstringLink to the video on www.douyin.com.
contentTypestringvideo, or images for a photo post (slides).
descstringCaption as the author wrote it.
createdAtstringWhen the video was published (ISO 8601, UTC).
likesintegerLikes.
commentsintegerComments.
sharesintegerShares.
collectsintegerSaves (favourites).
playsnullAlways null: Douyin's web pages do not show view counts. Never a fake 0.
durationSecnumberVideo length in seconds; null for photo posts.
imageCountintegerNumber of pictures in a photo post; null for videos.
hashtagsarrayHashtags from the caption, without #.
isPinnedbooleanPinned at the top of the creator's profile; set only in creator mode, null elsewhere.
authorobjectCreator: uid, secUid, nickname, uniqueId (Douyin ID), followers (null when Douyin does not report it), verified, verifiedReason, url. No contact details.
musicobjectSound: id, title, author, isOriginal.
coverUrlstringCover image URL (signed by Douyin, expires after some time).
modestringsearch, user, video or trending.
inputstringThe keyword, link or 'trending' this row came from.
searchPositionintegerPosition in the search results or trending video list, from 1.
trendobjectTrending mode: word, rank and hotValue of the hot-search topic.
statusstringok for a video; other values are status rows that explain why an input gave no videos (never charged as videos).
errorstringReason on a status row.
sourcestringwww.douyin.com or so.douyin.com.
fetchedAtstringWhen the row was collected (ISO 8601, UTC).
Input settings (4)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
What to collectmodestring"search"
Keywords (search mode)keywordsarray["咖啡"]
Links (creator and video modes)urlsarray
Max videosmaxItemsinteger10

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure