VOOZH about

URL: https://apify.com/zen-studio/douyin-profile-scraper

⇱ Douyin 抖音 Profile Scraper - 博主 Followers, Posts & Hashtags · Apify


👁 Douyin 抖音 Profile Scraper - 博主 Followers, Posts & Hashtags avatar

Douyin 抖音 Profile Scraper - 博主 Followers, Posts & Hashtags

Pricing

from $4.49 / 1,000 results

Go to Apify Store

Douyin 抖音 Profile Scraper - 博主 Followers, Posts & Hashtags

Extract Douyin (抖音) 博主 profiles, 粉丝 counts, engagement stats, hashtags, and Douyin's server-classified video categories. 28 fields per post + 22 per author. Accepts profile URLs, share links, UserSecIDs, and numeric user IDs. Profile-only 数据采集 mode for cheap follower tracking.

Pricing

from $4.49 / 1,000 results

Rating

0.0

(0)

Developer

👁 Zen Studio

Zen Studio

Maintained by Community

Actor stats

3

Bookmarked

91

Total users

33

Monthly active users

17 hours

Issues response

a day ago

Last modified

Share

Douyin Profile Scraper (抖音) | Followers, Posts, Bio, Likes (2026)

1,000 Douyin (抖音) posts per profile in under 60 seconds: followers, engagement, hashtags, music, and the full creator profile in clean structured JSON.

👁 Douyin (抖音) profile scraper: full creator profile and every post as structured JSON with followers, engagement, and hashtags

Copy to your AI assistant

zen-studio/douyin-profile-scraper on Apify. Scrapes Douyin profiles + posts with follower counts, engagement, hashtags, and server-classified videoTags. Call ApifyClient("TOKEN").actor("zen-studio/douyin-profile-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. profileUrls accepts URLs/share links/UserSecIDs/numeric uids;maxPostsPerProfile=0for profile-only. Full spec: GET https://api.apify.com/v2/acts/zen-studio~douyin-profile-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Token: https://console.apify.com/account/integrations
Zen Studio · Chinese-platform suite   •  RedNote (小红书), Douyin (抖音), Xigua (西瓜视频)
👁 Image
 Douyin Profile

➤ You are here
👁 Image
 Douyin Search

Keyword + filters, 60+ fields
👁 Image
 Douyin Video

Metadata + MP4 downloads
👁 Image
 Douyin Comments

Comments & nested replies

How to Scrape Douyin Profiles & Posts

Basic: one creator, last 100 posts

{
"profileUrls":["https://www.douyin.com/user/MS4wLjABAAAAk1tZ-L085zZf2yW_H5dnVFZWyk8Rt8v4RAvf9KhTyPoVdMDxTs7Q_rvgTJGWXezS"],
"maxPostsPerProfile":100
}

Profile only: track follower count without scraping posts

{
"profileUrls":["1929015166249580"],
"maxPostsPerProfile":0
}

Recent activity only: last 30 days across multiple creators

{
"profileUrls":[
"https://www.douyin.com/user/MS4wLjABAAAAk1tZ-L085zZf2yW_H5dnVFZWyk8Rt8v4RAvf9KhTyPoVdMDxTs7Q_rvgTJGWXezS",
"MS4wLjABAAAAjjwfy25gmtDlk8Wg6FNIBzHdHicG6BpZZNvWoTLL8S4",
"1929015166249580"
],
"maxPostsPerProfile":200,
"recentDays":30,
"excludePinnedPosts":true
}

Input Parameters

ParameterTypeDefaultDescription
profileUrlsstring[]requiredDouyin profile URLs, share links, UserSecIDs, or bare numeric user IDs.
maxPostsPerProfileinteger100How many recent posts per profile (0–10,000). Set to 0 for profile-only mode.
recentDaysintegernoneOnly include posts from the last N days (e.g. 30 for last month). Easier alternative to oldestPostDate.
oldestPostDatestringnoneOnly include posts on or after this absolute date (YYYY-MM-DD). When both recentDays and oldestPostDate are set, recentDays wins.
excludePinnedPostsbooleanfalseSkip posts pinned to the top of the profile.

Accepted profile input formats

FormatExample
Browser address bar URLhttps://www.douyin.com/user/MS4wLjABAAAAk1tZ-L085zZf2yW_H5dnVFZWyk8Rt8v4RAvf9KhTyPoVdMDxTs7Q_rvgTJGWXezS
App share link (auto-resolved)https://v.douyin.com/iAbc123/
Legacy share URLhttps://www.iesdouyin.com/share/user/1929015166249580
Bare UserSecIDMS4wLjABAAAAk1tZ-L085zZf2yW_H5dnVFZWyk8Rt8v4RAvf9KhTyPoVdMDxTs7Q_rvgTJGWXezS
Bare numeric user ID1929015166249580

What Data Can You Extract from Douyin?

Two output shapes depending on maxPostsPerProfile:

  • maxPostsPerProfile > 0 (default): one row per post (28 fields), with the creator's profile metadata nested under authorMeta (46 fields).
  • maxPostsPerProfile = 0: one row per profile (48 fields), profile fields promoted to the top level. Fastest, cheapest mode.

Per-post fields

  • Identity: id, type (video/imageText/story), url, shareUrl, inputUrl, region (creator IP), city + cityCode (post upload location, GB/T 2260), descLanguage
  • Content: text (caption), title (clean headline with hashtags stripped, when the post has one), thumb, images (for image-text posts)
  • Timing: createTime (unix), createDate (ISO YYYY-MM-DD)
  • Flags: isPinned, isAd, isPgc, isShared, crossPostedToXigua
  • Engagement: statistics: diggCount, commentCount, shareCount, collectCount, downloadCount, playCount, forwardCount
  • Categorisation: hashtags ([{id, name}], creator-typed with stable IDs), videoTags (Douyin's server-classified 3-level taxonomy), mentions
  • Media: musicMeta (track id, name, author, owner, duration, play URL, cover, isOriginal), videoMeta (cover, duration, dimensions, format, play URL, download URL, bit-rate variants, HDR, watermark, cdnUrlExpiresAt: unix-seconds when video URLs die, typically ~1h after scrape)
  • Structure: chapters ([{startMs, title, coverUrl}]), series ({id, name, episode, total, coverUrl, shareUrl, updateTime} for posts in a 合集), location (geotagged posts → place {id, name, category, address, district, city, province, country, cityCode, lat, lng, coverUrl} + POI signals {viewCount, itemCount, collectedCount, userCount, popularity}; else null)
  • Permissions: canDuet, canStitch, canDownload, canShare, canComment

Per-author (authorMeta) fields

Identity: id, secUid, name, username, customUsername, customUsernameUpdatedAt (unix timestamp of last handle change), verified, verifyType (0/1/2 = none/normal/enterprise), customVerifyText (e.g. "时尚创作者"), enterpriseVerifyReason, verificationReason, signature (bio), country (e.g. "CN"), language, gender (unknown/male/female).

Demographics: userAge (when set), birthday (when set), constellation (1–12 zodiac index when set, else null).

Avatars: avatarThumb, avatarLarge (existing), plus avatar168 (168×168), avatarMedium (720×720), avatar300 (300×300), bgImage (profile background), shareQrCodeUri (Douyin's share-QR asset path).

Engagement metrics: followersCount, followersCountStr (e.g. "4.8万"), followingCount, heartCount (legacy total likes from userhome), videoCount, videoPlayCount, videoShareCount, totalLikesReceived (lifetime cumulative likes, the canonical creator-economy metric, often differs from heartCount), awemeCount (real total post count), likesGivenCount (likes the creator gave to others).

Live & commerce: isLiving, roomId (live-room ID when live), isStar (Douyin's "star creator" tier), withShopEntry (has a Douyin Shop), commerceUserLevel (0–5).

Locality & associations: ipLocation (creator IP region), school ({id, name, category, type} for student creators, else null), usesSeries (publishes 合集), mcnInfo ({name, uid} for managed creators, else null), crossPlatform ({instagram, twitter, youtube, weibo} handles when set, else null), shareUrl.

Output Example

{
"id":"7628905002311994670",
"type":"video",
"text":"英语磨耳朵:热爱待在家的人的心理 #英语听力训练 #英语学习打卡 #启蒙英语 #英语没那么难 #每天英语一分钟",
"title":"英语磨耳朵:热爱待在家的人的心理",
"descLanguage":"zh",
"createTime":1776298080,
"createDate":"2026-04-16",
"url":"https://www.douyin.com/video/7628905002311994670",
"shareUrl":"https://www.iesdouyin.com/share/video/7628905002311994670/",
"thumb":"https://p11-sign.douyinpic.com/tos-cn-i-dy/40e0d6...~tplv-dy-resize.heic?...",
"isPinned":false,
"isAd":false,
"isPgc":false,
"isShared":false,
"region":"河北",
"city":"Hebei",
"cityCode":"130100",
"authorMeta":{
"id":"1929015166249580",
"secUid":"MS4wLjABAAAAk1tZ-L085zZf2yW_H5dnVFZWyk8Rt8v4RAvf9KhTyPoVdMDxTs7Q_rvgTJGWXezS",
"name":"木木英语",
"username":"63970939507",
"customUsername":null,
"customUsernameUpdatedAt":1777798069,
"verified":true,
"verifyType":1,
"customVerifyText":"英语创作者",
"enterpriseVerifyReason":null,
"verificationReason":"英语创作者",
"signature":"📚英语爱好者\n🧸努力学习英语中\n❤️好好吃饭💛好好睡觉💚好好生活",
"avatarThumb":"https://p26.douyinpic.com/img/aweme-avatar/...c5_300x300.jpeg?from=2956013662",
"avatarLarge":"https://p26.douyinpic.com/img/aweme-avatar/...c5_300x300.jpeg?from=2956013662",
"avatar168":"https://p26.douyinpic.com/img/aweme-avatar/...c5_168x168.jpeg",
"avatarMedium":"https://p26.douyinpic.com/img/aweme-avatar/...c5_720x720.jpeg",
"avatar300":"https://p26.douyinpic.com/img/aweme-avatar/...c5_300x300.jpeg",
"bgImage":"https://p11-sign.douyinpic.com/obj/douyin-user-image-file/...?...",
"shareQrCodeUri":"2f1f800070d01d38cc905",
"followingCount":15,
"followersCount":48875,
"followersCountStr":"4.8万",
"heartCount":87153,
"totalLikesReceived":87153,
"videoCount":189,
"awemeCount":189,
"likesGivenCount":312,
"videoPlayCount":null,
"videoShareCount":null,
"isLiving":false,
"roomId":null,
"isStar":false,
"withShopEntry":false,
"commerceUserLevel":0,
"ipLocation":"山东",
"country":"CN",
"gender":"unknown",
"language":"zh-Hans",
"userAge":9,
"birthday":null,
"constellation":1,
"school":null,
"usesSeries":true,
"mcnInfo":null,
"crossPlatform":null,
"shareUrl":"https://www.iesdouyin.com/xg/user/1929015166249580"
},
"musicMeta":{
"id":"7628905006464944923",
"name":"@木木英语创作的原声",
"author":"木木英语",
"album":null,
"isOriginal":true,
"isPgc":false,
"isCommerce":false,
"duration":221,
"playUrl":"https://sf5-hl-ali-cdn-tos.douyinstatic.com/obj/ies-music/7628905080950901550.mp3",
"coverThumb":"https://p11.douyinpic.com/aweme-avatar/...",
"coverLarge":"https://p26.douyinpic.com/aweme/1080x1080/aweme-avatar/...",
"owner":{
"id":"1929015166249580",
"handle":"63970939507",
"nickname":"木木英语"
}
},
"videoMeta":{
"cover":"https://p11-sign.douyinpic.com/tos-cn-i-dy/40e0d6...~tplv-dy-resize.heic?...",
"originCover":"https://p11-sign.douyinpic.com/tos-cn-p-0015/oUeILU...~tplv-dy-360p.heic?...",
"dynamicCover":"https://p11-sign.douyinpic.com/obj/tos-cn-i-dy/40e0d6...?...",
"height":1280,
"width":720,
"ratio":"720p",
"duration":221937,
"format":"mp4",
"isLongVideo":false,
"playUrl":"https://v95-hzyy-thr-daily-colda.douyinvod.com/.../?...",
"downloadUrl":"https://v5-se-ws-cold.douyinvod.com/.../?...",
"bitRates":[
{"quality":"adapt_lowest_1080_1","bitRate":247531,"isH265":true,"fps":30,"url":"https://..."},
{"quality":"adapt_lower_540_1","bitRate":155050,"isH265":true,"fps":30,"url":"https://..."}
],
"isHdr":false,
"hasWatermark":true,
"cdnUrlExpiresAt":1777883276
},
"images":[],
"statistics":{
"diggCount":106,
"shareCount":14,
"commentCount":4,
"collectCount":47,
"downloadCount":1,
"playCount":0,
"forwardCount":0
},
"mentions":[],
"hashtags":[
{"id":"1664320797481997","name":"英语听力训练"},
{"id":"7541656378260408383","name":"英语学习打卡"},
{"id":"7402916912059680777","name":"启蒙英语"}
],
"videoTags":[
{"name":"校园教育","level":1},
{"name":"考试考证","level":2},
{"name":"语言学习","level":3}
],
"chapters":[],
"series":null,
"location":{
"id":"7245118392016537123",
"name":"河北省图书馆",
"category":"生活服务;文化场馆;图书馆",
"address":"东大街22号",
"district":"长安区",
"city":"石家庄市",
"province":"河北省",
"country":"中国",
"cityCode":"130100",
"lat":38.043941,
"lng":114.521967,
"coverUrl":"https://p3-sign.douyinpic.com/obj/tos-cn-i-...",
"viewCount":8420,
"itemCount":213,
"collectedCount":64,
"userCount":156,
"popularity":"327人想去"
},
"permissions":{
"canDuet":true,
"canStitch":false,
"canDownload":false,
"canShare":true,
"canComment":true
},
"crossPostedToXigua":false,
"inputUrl":"1929015166249580"
}

Important: URL Durability

Different URL types in the output have very different lifespans. Plan your downstream pipeline accordingly.

FieldLifespanNote
url (canonical post URL)Permanenthttps://www.douyin.com/video/<id>, never expires. The reliable reference.
shareUrlPermanenthttps://www.iesdouyin.com/share/video/<id>/, also permanent.
authorMeta.shareUrl, authorMeta.profileUrlPermanentProfile share/canonical URLs.
authorMeta.avatarThumb, authorMeta.avatarLargePermanentCDN-direct, no signature.
musicMeta.playUrl, musicMeta.coverLargePermanentCDN-direct, no signature.
thumb, videoMeta.cover, videoMeta.originCover, videoMeta.dynamicCover, images[].url, authorMeta.bgImage~14–30 daysSigned CDN URLs (*-sign.douyinpic.com). The query string holds the signature; download or re-upload to your own storage if you need them long-term.
videoMeta.playUrl, videoMeta.downloadUrl, videoMeta.bitRates[].url~1 hourShort-lived video CDN URLs. The exact expiry time is in videoMeta.cdnUrlExpiresAt (unix-seconds); check it before downloading.

The id and url fields are the only truly permanent references. Build your downstream pipeline around them, then re-resolve fresh media URLs whenever you need them.

Advanced Usage

Track follower growth across many creators (cheapest)

{
"profileUrls":["1929015166249580","75736792009","..."],
"maxPostsPerProfile":0
}

One row per creator, no posts. Pair with a daily schedule to build a follower-tracking dashboard.

Pull only this week's posts from a creator

{
"profileUrls":["MS4wLjABAAAAk1tZ-L085zZf2yW_H5dnVFZWyk8Rt8v4RAvf9KhTyPoVdMDxTs7Q_rvgTJGWXezS"],
"maxPostsPerProfile":500,
"recentDays":7
}

The actor stops fetching as soon as it crosses the 7-day boundary, so you only pay for posts within the window.

Bulk creator audit

{
"profileUrls":[
"1929015166249580",
"75736792009",
"63485583690",
"..."
],
"maxPostsPerProfile":30,
"excludePinnedPosts":true
}

Fast snapshot of recent (non-pinned) activity across a list of creators. Up to 30 profiles run in parallel.

Pricing: Pay Per Event (PPE)

$6.99 per 1,000 results (base price). Each row written to the dataset counts as one result, whether it's a post row or a profile-only row.

EventPer callPer 1,000
result (one dataset row)$0.00699$6.99

FAQ

What is Douyin (抖音)? Douyin is ByteDance's Chinese short-video platform, the domestic counterpart of TikTok: same company and format, separate app and creator base. Its creators drive trends across China, and this actor captures their full public profile and post history.

How many fields are returned per post? 28 top-level fields per post (in posts mode), with authorMeta containing a further 22 fields nested. In profile-only mode (maxPostsPerProfile: 0) the same 22 author fields are promoted to the top level alongside profileUrl and inputUrl, for 24 fields total.

What types of profile inputs are accepted? Browser address-bar URLs (/user/MS4w...), app share links (v.douyin.com/...), legacy share URLs (iesdouyin.com/share/user/<numeric>), bare UserSecIDs (MS4w...), and bare numeric user IDs. You can mix all of them in one profileUrls array.

How fresh is the data? Live: every field is fetched on demand at run time. No caching.

Do video URLs work after the run finishes? Image URLs (covers, avatars, image-post photos, profile background) stay valid for roughly 14–30 days. Video play URLs and download URLs are short-lived; they typically expire within hours. The post url (https://www.douyin.com/video/<id>) is permanent and is the safe long-term reference. See the URL Durability section above.

What's the difference between hashtags and videoTags? hashtags are the #tags the creator typed in the caption. videoTags is Douyin's own 3-level content classification; for example a video might be tagged 校园教育 (level 1, top-level category) → 考试考证 (level 2) → 语言学习 (level 3, leaf). The classification is server-assigned and is one of the more interesting signals on the platform.

What's profile-only mode for? Setting maxPostsPerProfile to 0 returns just the creator's profile metadata: followers, following, total likes, video count, bio, avatar, region. One row per creator. Ideal for daily follower-tracking dashboards where post-level data isn't needed.

Why did a profile (or my whole run) return 0 rows? Usually a date filter. oldestPostDate and recentDays keep only posts inside the window you set, so a creator who hasn't posted in that window contributes no rows, and a run where none of the profiles posted in the window comes back empty. That is expected, not an error: the run still finishes successfully, and its status message reports how many profiles had no posts in the selected range. Widen or remove the date filter to reach their older posts, or set maxPostsPerProfile: 0 (profile-only mode) to get each creator's profile data regardless of whether they posted recently.

Why are some username fields empty? Not every Douyin creator has a short_id set on their profile; when they don't, that field comes back empty. The numeric id and the secUid are always present.

Do I need a Douyin account or cookies? No. Paste profile URLs, share links, or IDs and run; no account, cookie export, or QR login is involved.

How do I export the data? The dataset downloads as JSON, CSV, Excel, XML, or HTML from the run's Storage tab, or via the Apify API. JSON preserves the nested authorMeta object best.

How do I find creators by keyword, or get their comments and videos? Chain the suite: Douyin Search Scraper finds creators and posts by keyword, this actor returns their full profile and back-catalogue, Douyin Comments Scraper pulls comment threads, and Douyin Video Scraper fetches per-video metadata and MP4s.

Can I scrape comments / followers / liked videos? Not in this actor; profile and posts only. Use Douyin Comments Scraper for comment threads; follower lists and liked videos are not exposed by Douyin's public profile surface.

Is it legal to scrape Douyin profiles? The actor collects publicly visible profile and post data only, nothing behind a login. You are responsible for complying with Douyin's terms of service and applicable data protection law (GDPR, CCPA, PIPL); profiles are personal data, so check your legal basis before storing or republishing them.

What's the maximum posts per profile? 10,000. The vast majority of creators have fewer than 1,000 posts, so the cap rarely binds. Cost scales linearly with this value, so set what you actually need.

Does the actor work for any Douyin creator? Public profiles only. Private accounts and accounts that have blocked external access are not addressable.

More Zen Studio scrapers for Chinese platforms

🎬 Short-video & social

🛒 E-commerce

🏠 Real estate & autos

Support

  • Bugs: Issues tab
  • Features: Issues tab

Legal Compliance

Extracts publicly available data from Douyin (抖音). Users must comply with Douyin's terms of service and applicable data protection regulations (GDPR, CCPA, PIPL).


Structured Douyin profile + post data: followers, engagement, video tags, music, bio. For any creator, in clean JSON.

You might also like

Douyin 抖音 Video Scraper - Metadata + MP4 Downloads

zen-studio/douyin-video-scraper

Extract Douyin (抖音) video metadata: statistics, music tracks, hashtags, mentions, chapters, and creator profiles in 56 structured fields. 1,000 videos in ~70 seconds. Optional MP4, cover, and slideshow downloads. Accepts video URLs, share links, and bare aweme IDs.

62

Douyin 抖音 Search Scraper + Video Downloader - 60+ Fields

zen-studio/douyin-search-scraper

Scrape Douyin (抖音) videos by keyword and download them as MP4. Get views, likes, comments, shares, creator profile, music, hashtags, and video tags. Optionally save covers and slideshow images. Filter by sort, publish window, and duration. 60+ fields per video, 46 per creator. Free tier - 10 runs.

221

5.0

Douyin 抖音 Comments Scraper - Comments & Replies

zen-studio/douyin-comments-scraper

Scrape Douyin (抖音) video comments and replies. Each row is one top-level comment with author info, like count, region, and (optionally) all replies nested. Supports any Douyin video URL or aweme ID.

42

Douyin Analytics Scraper

automation-lab/douyin-analytics-scraper

Extract Douyin trending hot search topics, video search results, and user profile analytics. Get real-time rankings, engagement metrics, and follower counts. No login or API key required.

👁 User avatar

Stas Persiianenko

112

Douyin Search Scraper

kuaima/douyin-search

This scraper can help you to get search data from https://www.douyin.com/ 抖音 which is Chinese Version of tiktok.

450

4.5

Douyin Search Scraper - Video & User Insights

cloudcharlestom/douyin-search-scraper

Extract Douyin video and user data by keyword. Get video URL, likes, comments, shares, favorites, and music info. Ideal for market analysis, influencer discovery, content research, and trend tracking.

👁 User avatar

CloudCharles

149

Douyin Scraper

natanielsantos/douyin-scraper

This powerful tool enables you to extract data from Douyin, the Chinese version of TikTok. Use it to scrape post data, like URLs, numbers of followers, hearts, video, music-related data and more. Download Douyin data as a HTML, JSON, CSV, Excel, or XML doc.

👁 User avatar

Nataniel Santos

1.5K

3.1

Douyin Video Downloader 🎥

easyapi/douyin-video-downloader

Extract and download videos from Douyin (Chinese TikTok) without watermark. Get high-quality video URLs, thumbnails, author info and other metadata in structured format. Perfect for content analysis and archiving.

484

1.0

Douyin Comments Scraper

natanielsantos/douyin-comments-scraper

Easily scrape Douyin comments. Just add a Douyin URL. Get text, user ID, images. timestamp, number of replies and replies content, number of likes, etc.

👁 User avatar

Nataniel Santos

74

1.0

Douyin 抖音 Transcripts Scraper - 50+ Languages, .srt + MP4

zen-studio/douyin-transcripts-scraper

Extract timestamped transcripts and .srt 字幕 from any Douyin (抖音) video. Mandarin speech-to-text plus translation into 50 languages. Optionally save the source MP4 and cover image to your key-value store at no extra cost. 60+ metadata fields. Per-minute pricing, free tier.

46