Skip to content

Douyin Scraper

Try for free

Scrape public Douyin posts from a profile or a video URL: caption, counts, music, and author.

🎵 Douyin Scraper

Collect public Douyin posts from a creator profile or a single video link: caption, hashtags, mentions, music, author, video and cover links, and like, comment, share, and collect counts. No Douyin login, cookies, or session needed. The result fee is $1.00 per 1,000 posts, plus platform usage for the browser session.

Paste profile or video URLs, set how many posts you want and a date window, and export the rows as JSON, CSV, or Excel.

✨ Why use Douyin Scraper?

  • 🔓 No login — only posts that load on a public page.
  • 👤 Profiles and videos — a creator's recent posts, or one video by URL, including v.douyin.com short links.
  • 📅 Date window — keep only posts inside an oldest and newest date, or a window like 30 days.
  • 🏷️ Rich fields — text, hashtags, mentions, author, music, video metadata, and engagement counts.
  • 🧱 Clean rows — one row per post with consistent field names.
  • 🛡️ Partial results kept — posts already saved stay in the dataset if a later profile fails.

🎯 Use cases

  • 🗃️ Archiving — save public videos and their captions.
  • 📈 Creator tracking — collect a creator's recent posts and watch engagement.
  • 🔍 Content research — study hashtags, music, and captions that perform.
  • 🧪 Trend analysis — export likes, comments, shares, and collects for analysis.
  • 🏢 Brand monitoring — follow public accounts of brands and competitors in China.

🚀 How to use

  1. Paste Profile URLs (or sec user IDs), or leave them empty and add Post URLs.
  2. Set Maximum items per URL, and optionally an oldest and newest post date.
  3. Click Start.
  4. Download the dataset as JSON, CSV, or Excel, or read it through the API.

📥 Input

FieldTypeDescription
profileUrlsarrayPublic profile URLs or sec user IDs. When set, post URLs are not used.
postUrlsarrayPublic video URLs, including v.douyin.com short links. Used only when no profile URL is set.
maxItemsPerUrlintegerPosts to save per profile. Default 10. Single post URLs ignore it.
profileOldestPostDatestringYYYY-MM-DD or a window like 30 days, 2 months, 1 year. UTC.
profileNewestPostDatestringYYYY-MM-DD, UTC.
proxyConfigurationobjectAccepted for compatibility. The browser session uses its own exit.

Ten recent posts from a profile:

{
  "profileUrls": [
    "https://www.douyin.com/user/MS4wLjABAAAAexampleSecUid"
  ],
  "maxItemsPerUrl": 10
}

One video:

{
  "profileUrls": [],
  "postUrls": ["https://www.douyin.com/video/7429767354541788468"]
}

📤 Output

One row per public post.

FieldDescription
id, url, inputUrlPost id, public video page, and the input it came from.
text, hashtags, mentionsCaption, hashtags, and mentions.
createTime, createDateUnix time and a DD/MM/YYYY date.
authorMetaAuthor id, sec uid, name, and avatar.
musicMetaMusic id, name, author, and duration.
videoMetaCover images, size, duration, and play URL.
statisticsDigg (like), share, comment, and collect counts.

A trimmed item (the author shown is a fictional example):

{
  "id": "7429767354541788468",
  "url": "https://www.douyin.com/video/7429767354541788468",
  "text": "35 岁后,要选择可以做一辈子的生意#商业思维 #干货分享 #创业 #赚钱思维",
  "createTime": 1729877604,
  "createDate": "25/10/2024",
  "authorMeta": {
    "id": "100000000001",
    "secUid": "MS4wLjABAAAAexampleSecUid",
    "name": "Jane Doe",
    "followersCount": null
  },
  "musicMeta": { "id": "7429767555620834067", "name": "Original sound - Jane Doe", "author": "Jane Doe", "isOriginal": true, "duration": 413 },
  "videoMeta": { "height": 1920, "width": 1080, "duration": 413000 },
  "statistics": { "diggCount": 362407, "shareCount": 136960, "commentCount": 18430, "collectCount": 208636, "downloadCount": null },
  "mentions": [],
  "hashtags": [
    { "id": "1609184230334532", "name": "商业思维" },
    { "id": "1591638955662429", "name": "干货分享" }
  ]
}

Follower totals and play counts are left empty because the public post list does not include them.

💰 Pricing

You pay $0.001 per saved post, which is $1.00 per 1,000 posts. Each run also uses platform usage: compute at $0.30 per GB-hour and browser credits at $0.00075 each, because the public post list is loaded in a browser session. Browser credits are the larger part of a small run.

Worked example: a 10-post profile costs 10 x $0.001 = $0.01 in result fees. With the usage measured on a billed staging run of that size (about $0.048 in browser credits and about $0.008 compute), that comes to about $0.066 in total.

❓ FAQ

Do I need a Douyin account?

No. Only posts that load on a public page are collected.

Is it legal?

It reads public pages. You are responsible for following Douyin's terms and the laws that apply to your use of the data, including for personal data.

Why is keyword search missing?

Douyin returns a login prompt for search when no account is signed in, and this actor does not take your login.

What if a later profile fails?

Posts already saved stay in the dataset.

What if a field is empty?

Some fields, such as follower totals, play counts, and download counts, are not on the public post list and stay null.

Can I schedule it or use the API?

Yes. Schedule runs, start them through the API, and read the dataset in any export format.

If you are moving from another Douyin post scraper, profile URLs, post URLs, and the per-profile limit cover the same public posts.

⚠️ Limits

  • 🔢 Douyin shows visitors who are not logged in only the newest posts plus pinned ones, about 20 per profile, so most profiles return about 20 posts even with a higher limit. Date filters only apply within those posts.
  • 🔒 Private, deleted, and login-only videos are skipped.
  • 🐢 A 10-post run takes roughly 40 seconds, because a browser session loads the list.
  • 🧵 Starting several profile runs at the same moment can return nothing. Sequential runs worked reliably.
  • 🔎 No keyword search.
  • 🌐 Plain HTTP from datacenter addresses is rejected by Douyin, which is why a browser session is used.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.